Bạn có thể chạy các tập lệnh cục bộ từ xa bằng cách thực thi bashtrê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 sudotrên một máy từ xa, hãy sử dụng ssh's -ttùy chọn và chuyển các lệnh tới ssh. Các -ttù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 sednà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 sedlệ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.sedphương pháp.