Подтвердить что ты не робот

Как запустить файл скрипта удаленно, используя SSH

Я хочу запустить скрипт удаленно. Но система не распознает путь. Он жалуется, что "нет такого файла или каталога". Я правильно это использую?

ssh [email protected] './test/foo.sh'
4b9b3361

Ответ 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.