Jak uruchomić lokalny skrypt powłoki na zdalnym serwerze za pośrednictwem SSH?


Odpowiedzi:


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

-s sprawia, że ​​bash jest czytany ze standardowego wejścia.

Jeśli musisz przekazać argumenty do skryptu:

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

Zwróć uwagę na podwójny myślnik --(oznaczający koniec opcji polecenia) i cudzysłowy wokół argumentów.


Będę musiał to pamiętać. Daj nam znać, czy to zadziałało, i nie zapomnij zaznaczyć odpowiedzi jako zaakceptowanej, jeśli tak się stało.
Argusvision

3
Nie potrzebujesz -si potrzebujesz tylko, bashjeśli naprawdę chcesz wymusić użycie bash. Zwykle możesz po prostussh user@remotehost < local_script.sh
janos

1
co jeśli skrypt lokalny ma operandy?
kmassada,

Mam skrypt, który potrzebuje argumentów, np. „Sh setup.sh arg1 arg2 arg3” jak go wykonać
Amarjit Singh

4

odpowiedź phoibos działa dla mnie.

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

Musisz jednak upewnić się, że skrypt wyraźnie wywołuje polecenie exit, w przeciwnym razie po wykonaniu skryptu pozostaniesz zalogowany na serwerze zdalnym.

Krótko mówiąc, nie zapomnij umieścić tego na końcu local_script.sh:

exit 0
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.