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


Відповіді:


17
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
що робити, якщо локальний скрипт має операнди?
kmassada

У мене є сценарій, який потребує аргументів, наприклад, "sh setup.sh arg1 arg2 arg3", як його виконати
Amarjit Singh

4

відповідь phoibos - це працює для мене.

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

Але ви повинні бути впевнені, що ваш скрипт явно вимагає виходу або ви залишитеся ввійти на віддалений сервер після виконання сценарію.

Якщо коротко, не забудьте поставити це в кінці local_script.sh:

exit 0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.