Anda dapat menjalankan skrip lokal dari jarak jauh dengan mengeksekusi bash
di sistem jarak jauh dan mengumpankan skrip Anda
$ ssh user@host 'bash -s' < script.sh
Edit
Untuk menjalankan perintah yang mengharuskan penggunaan sudo
pada ssh's
-t
opsi penggunaan mesin jarak jauh dan meneruskan perintah ke ssh
. The -t
pilihan mengalokasikan tty pseudo dan memungkinkan interaksi pengguna dengan perintah berlari oleh ssh
, seperti memasukkan password untuksudo
$ ssh user@host -t 'sudo foo'
Untuk memodifikasi file menggunakan metode sed
ini disarankan melalui pengalihan >
karena pengalihan shell tidak memungkinkan untuk menulis file saat menggunakan sudo
. Selain itu, semua variabel dalam sed
perintah harus diloloskan ketika mereka dilewatkan ke ssh
.
$ ssh user@host -t 'sudo sed -i "\$a text to insert" /path/to/file'
Untuk mengotomatiskan semuanya:
#!/bin/bash
SERVERS=( server1 server2 server3 )
for HOST in ${SERVERS[@]}; do
ssh user@${HOST} -t 'sudo sed -i "\$a text to insert" /path/to/file'
if [[ $? -ne 0 ]]; then
echo "ERROR: $HOST did not complete"
else
echo "$HOST complete"
fi
done
fabric.contrib.files.sed
metode.