Bagaimana menjalankan skrip shell lokal di server jauh melalui SSH?

Jawaban:

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

-s membuat bash dibaca dari input standar.

Jika Anda perlu menyampaikan argumen ke skrip Anda:

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

Perhatikan tanda hubung ganda --(menandakan akhir dari opsi perintah) dan tanda kutip di sekitar argumen.

phoibos
sumber
Saya harus ingat itu. Harap beri tahu kami jika itu berhasil untuk Anda, dan jangan lupa untuk menandai jawaban yang diterima jika memang berhasil.
Argusvision
3
Anda tidak perlu -s, dan Anda hanya perlu bashjika Anda benar-benar ingin menggunakan paksa bash. Biasanya Anda cukupssh user@remotehost < local_script.sh
janos
1
bagaimana jika skrip lokal memiliki operan?
kmassada
Saya punya skrip yang membutuhkan argumen, misalnya "sh setup.sh arg1 arg2 arg3" bagaimana cara menjalankannya
Amarjit Singh
4

jawaban phoibos bekerja untuk saya.

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

Tetapi Anda harus yakin bahwa skrip Anda secara eksplisit memanggil keluar atau Anda akan tetap masuk ke server jarak jauh setelah eksekusi skrip.

Singkatnya, jangan lupa letakkan ini di akhir local_script.sh:

exit 0
mickours
sumber