Bạn có thể chạy các tập lệnh cục bộ từ xa bằng cách thực thi bash
trên hệ thống từ xa và cho nó tập lệnh của bạn
$ ssh user@host 'bash -s' < script.sh
Biên tập
Để thực thi các lệnh yêu cầu sử dụng sudo
trên một máy từ xa, hãy sử dụng ssh's
-t
tùy chọn và chuyển các lệnh tới ssh
. Các -t
tùy chọn phân bổ một tty psuedo và cho phép người dùng tương tác với các lệnh chạy bởi ssh
, chẳng hạn như nhập một mật khẩu chosudo
$ ssh user@host -t 'sudo foo'
Để sửa đổi một tệp bằng phương pháp sed
này được khuyến nghị qua chuyển hướng >
vì chuyển hướng shell không cho phép ghi tệp khi sử dụng sudo
. Ngoài ra, tất cả các biến trong sed
lệnh cần phải được thoát khi chúng được chuyển đến ssh
.
$ ssh user@host -t 'sudo sed -i "\$a text to insert" /path/to/file'
Để tự động hóa toàn bộ:
#!/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
phương pháp.