Как запустить файл скрипта удаленно, используя SSH
Я хочу запустить скрипт удаленно. Но система не распознает путь. Он жалуется, что "нет такого файла или каталога". Я правильно это использую?
ssh [email protected] './test/foo.sh'
Ответы
Ответ 1
Backticks запускает команду в локальной оболочке и помещает результаты в командную строку. То, что вы говорите, это "выполнить./test/foo.sh", а затем передать вывод, как если бы я набрал его в командной строке здесь ".
Попробуйте выполнить следующую команду и убедитесь, что это путь из вашего домашнего каталога на удаленном компьютере на ваш script.
ssh [email protected] './test/foo.sh'
Кроме того, script должен находиться на удаленном компьютере. То, что это делает, по существу, записывает вас на удаленный компьютер с указанной командой в качестве вашей оболочки. Вы не можете запустить локальный script на удаленном компьютере, как это (если только не интересный трюк, который я не знаю).
Ответ 2
Ты можешь сделать:
ssh [email protected] 'bash -s' < /path/script.sh
Ответ 3
Если вы хотите выполнить локальный скрипт удаленно, без сохранения этого скрипта, вы можете сделать это следующим образом:
cat local_script.sh | ssh [email protected] 'bash -'
Это работает как шарм для меня.
Я делаю это даже из Windows в Linux, учитывая, что на вашем компьютере Windows установлен MSYS.
Ответ 4
Я не знаю, можно ли запустить его именно так.
Обычно я сначала копирую его с помощью scp, а затем заходим для его запуска.
scp foo.sh [email protected]:~
ssh [email protected]
./foo.sh
Ответ 5
Сделайте исполняемый файл script пользователем "Kev", а затем удалите попытку, выполняемую командой
sh [email protected] /test/foo.sh
Ответ 6
Мне удалось вызвать сценарий оболочки с помощью этой команды:
ssh ${serverhost} "./sh/checkScript.ksh"
Конечно, checkScript.ksh
должен существовать в каталоге $HOME/sh
.