Как запустить скрипт локальной оболочки на удаленном сервере через SSH?


Ответы:


16
ssh user@remotehost "bash -s" < local_script.sh

-s делает bash прочитанным из стандартного ввода.

Если вам нужно передать аргументы в ваш скрипт:

ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"

Обратите внимание на двойную черту --(обозначающую конец параметров команды) и кавычки вокруг аргументов.


Я должен помнить это. Пожалуйста, дайте нам знать, если это сработало для вас, и не забудьте пометить ответ как принятый, если это сработало.
Argusvision

3
Вам не нужно -s, и вам нужно , только bashесли вы действительно хотите заставить использовать bash. Обычно вы можете простоssh user@remotehost < local_script.sh
Janos

1
Что делать, если локальный скрипт имеет операнды?
Массада

У меня есть сценарий, который нуждается в аргументах, например, "sh setup.sh arg1 arg2 arg3", как его выполнить
Амарджит Сингх

4

Ответ Phoibos работает для меня.

ssh user@remotehost "bash -s" < local_script.sh

Но вы должны быть уверены, что ваш скрипт явно вызывает exit, иначе вы останетесь в журнале на удаленном сервере после выполнения скрипта.

Короче говоря, не забудьте поставить это в конце local_script.sh:

exit 0
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.