Cách Backup và đồng bộ dữ liệu VPS/Server bằng RSYNC thông qua SSH

posted in: Kiến thức máy chủ | 0

Nếu bạn muốn đồng bộ dữ liệu giữa các VPS/Server nhằm hỗ trợ việc backup dữ liệu hoặc chuyển dữ liệu từ VPS này sang VPS khác, bạn phải làm sao? Sau đây chúng tôi xin chia sẻ với các bạn Cách Backup và đồng bộ dữ liệu VPS/Server bằng RSYNC thông qua SSH, chúng tôi sẽ hướng dẫn bạn đồng bộ dữ liệu từ thư mục “/home/websites/” tại VPS A (source) lên thư mục “/home/” tại VPS B(destination) có địa chỉ IP là 23.88.236.66

Cách Backup và đồng bộ dữ liệu VPS Server bằng RSYNC thông qua SSH
Cách Backup và đồng bộ dữ liệu VPS/Server bằng RSYNC thông qua SSH

Tại VPS A

Bạn cài đặt rsync bằng lệnh YUM :

1
sudo yum install -y rsync

Sau đó bạn tại khoá xác thực SSH (SSH authentication keys) bằng lệnh sau :

1
ssh-keygen -t dsa
[root@xtraffic ~]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):/root/.ssh/id_dsa_vps_a

Khi tới bước “Enter file in which to save the key (/root/.ssh/id_dsa):” thì bạn nhập “/root/.ssh/id_dsa_vps_a” (nơi chứa thông tin của keys)

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa_vps_a.
Your public key has been saved in /root/.ssh/id_dsa_vps_a.pub.
The key fingerprint is:
08:e5:e1:b4:58:ff:33:75:c5:fe:73:3e:4d:36:48:25 root@xtraffic
The key's randomart image is:
+--[ DSA 1024]----+
|      =        ..|
|     B +     E o.|
|    o + .   . +. |
|     . . . . o  .|
|      . S + . . .|
|           o . o=|
|               +=|
|               .o|
|                .|
+-----------------+
[root@xtraffic ~]#

Khi tới bước “Enter passphrase (empty for no passphrase):” & “Enter same passphrase again:” thì bạn không cần nhập gì cả, chỉ việc nhấn phím “ENTER

Có thể bạn muốn xem :

Sau đó bạn copy key SSH vừa được tạo (/root/.ssh/id_dsa_vps_a.pub) lên VPS B bằng lệnh :

1
scp /root/.ssh/id_dsa_vps_a.pub root@23.88.236.66:/root/

Tại VPS B

Tiếp theo bạn đăng nhập SSH vào VPS B và thực hiện những lệnh sau :

1
2
3
4
mkdir -p /root/.ssh/
touch -f /root/.ssh/authorized_keys
cat /root/id_dsa_vps_a.pub >> /root/.ssh/authorized_keys
chmod 644 /root/.ssh/authorized_keys

Tại VPS A

Sau đó bạn đăng nhập SSH vào VPS A và thực hiện lệnh :

1
rsync -aurzW --delete --force -e "ssh -i /root/.ssh/id_dsa_vps_a" /home/websites root@23.88.236.66:/home

Đây là lệnh đồng bộ dữ liệu 1 chiều từ thư mục “/home/websites/” tại VPS A lên thư mục “/home/” tại VPS B theo nguyên tắc sau :

  • Nếu thư mục/tập tin nào có trên VPS A mà không có trên VPS B thì sẽ tự động tạo trên VPS B
  • Nếu thư mục/tập tin nào có trên VPS B mà không có trên VPS A thì sẽ tự động xoá trên VPS B

Tiếp theo, chúng ta sẽ cấu hình Crontab để tự động thực hiện đồng bộ mỗi phút trên VPS A :

1
2
3
echo "
* * * * * root rsync -aurzW --delete --force -e \"ssh -i /root/.ssh/id_dsa_vps_a\" /home/websites root@23.88.236.66:/home > /dev/null 2>&1" >> /etc/cron.d/minutesjobs
chmod 644 /etc/cron.d/minutesjobs

Vậy là xong, chúng ta đã cấu hình tự động đồng bộ dữ liệu từ VPS A lên VPS B mỗi phút với rsync + Crontab + SSH.Cách sao lưu và đồng bộ dữ liệu VPS/Server bằng RSYNC thông qua SSH

Chúc các bạn thành công!

Theo blog-xtraffic.pep.vn

Bình luận