Hướng dẫn copy files qua nhiều server cùng lúc
Nay có nhu cầu cập nhật chương trình mới trên tất cả các máy chủ Linux nên sẵn viết bài này luôn để ghi chú sau này lỡ quên coi lại ^^
Tầm 30 server mà ftp/scp vô từng em để chép files chắc chết quá. Tư duy của thằng lười lại trỗi dậy ^^!
Việc này khá ư là đơn giản. :)
# vim server.txt
Gõ ip của từng server vô.
Tiếp theo, chép file qua danh sách máy chủ
for server in $(<server.txt); do
scp xxx.txt ${server}:remote/path/
done
Gõ lệnh trên xong, chắc chắn là....lỗi rồi kiểu thế này:
Host key verification failed.
Khi kết nối đến bất kỳ thì nó sẽ hỏi fingerprint, a hash of its full host key và yêu cầu xác nhận lại. Sau khi xác nhận, key chứng thực sẽ được vào: ~/.ssh/known_hosts file.
Để bỏ qua key chứng thực cho host (server) nào đó thì chúng ta gõ lệnh sau:
ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null username@ip_server
Tạm thời bỏ qua việc hỏi key, chúng ta có thể sửa file cấu hình sau:
# vim /etc/ssh/ssh_config
Cho 1 host nào đó
Host lecuong.vnsysadmin.com
StrictHostKeyChecking no
disable all host:
Host *
StrictHostKeyChecking no
hoặc cho subnet
Host 192.168.16.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
Phần quan trọng nhất, chép file qua bầy máy chủ kia ^^!
for dest in $(<server.txt); do
sshpass -p 'user_password' scp xxx.txt ${dest}:/remote/path/
done
Chúc may mắn! Hehe...