How to copy file to multi server with single command

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. :)

Đầu tiên là tạo danh sách máy chủ

# 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...


BÀI VIẾT LIÊN QUAN

Post a Comment

Vui lòng tuân thủ một số quy tắc sau:

» Nội dung phải liên quan tới chủ đề bài viết, không spam.
» Viết bằng tiếng Việt có dấu hoặc tiếng Anh.

Hi vọng các bạn tìm được những kiến thức bổ ích khi tình cờ ghé thăm blog này.