15/09/2024

Hướng dẫn đồng bộ dữ liệu 2 máy chủ centos 7 bằng rsync

Rsync (Remote Sync) là một công cụ hữu hiệu để sao lưu và đồng bộ dữ liệu trên Linux. Với câu lệnh rsync bạn có thể sao lưu và đồng bộ dữ liệu remote từ các máy sử dụng hệ điều hành Linux một cách dễ dàng và thuận tiện.

Trong bài viết này mình sẽ hướng dẫn đồng bộ dự liệu 2 server centos 7 với nhau.

Các đặc điểm nổi bật khi dùng Rsync:

  1. Hiệu quả trong việc sao lưu và dồng bộ file từ 1 hệ thống khác
  2. Hỗ trợ sao chép links, devices, owners, groups và permissions.
  3. Nhanh hơn sử dụng SCP (secure copy).
  4. Rsync tiêu tốn ít bandwidth vì nó có sử dụng cơ chế nén khi truyền tải và nhận dữ liệu.

Chuẩn bị:

2 VPS chạy centos 7:

  • VPS2 (103.159.50.124): đang chạy source wordpress 1.
  • VPS3 (103.124.94.2): đang chạy source wordpress 2.

Thư mục cần đồng bộ: /var/www/wordpress

Bước 1: Cài đặt rsync trên cả hai server

Trên cả hai VPS, bạn chạy lệnh sau để cài đặt rsync:
sudo yum install rsync -y

Bước 2: Thiết lập SSH key trên VPS2

Tạo cặp khóa SSH
ssh-keygen -t rsa
Sau khi tạo khóa, bạn sẽ có một cặp khóa trong thư mục ~/.ssh/. Để đồng bộ mà không cần mật khẩu, bạn cần copy public key của VPS2 sang VPS3.
ssh-copy-id root@<IP VPS2>

Bước 3: Thiết lập SSH key trên VPS3

Tạo cặp khóa SSH
ssh-keygen -t rsa
Sau khi tạo khóa, bạn sẽ có một cặp khóa trong thư mục ~/.ssh/. Để đồng bộ mà không cần mật khẩu, bạn cần copy public key của VPS3 sang VPS2.

ssh-copy-id root@<IP VPS3>

Bước 4: Thiết lập cron job để tự động sync dữ diệu (làm trên 2 VPS2 và VPS3).

Gõ lệnh : crontab -e
Trên VPS2 thêm vào dòng:
* * * * * rsync -avz /var/www/wordpress/ root@103.124.94.2:/var/www/wordpress/ >/dev/null 2>&1

Trên VPS3 thêm vào dòng:
* * * * * rsync -avz /var/www/wordpress/ root@103.159.50.124:/var/www/wordpress/ >/dev/null 2>&1
Sau đó lưu lại.
Restart lại crond:
systemctl restart crond

Bước 5: Test kiểm tra xem dữ liệu có tự động đồng bộ không

Vào VPS2 tạo 1 bài viết, upload hình ảnh và xuất bản bài viết.

Sau đó vào VPS3 kiểm tra xem bài viết có hình ảnh không.

Kiểm tra dữ liệu trong SSH thì 2 VPS đều có dữ liệu như nhau.

 

 

 

 

Comments

Cấu hình load balancing wordpress - nginx với HaProxy - Nhan Hoa Knowledgebase

[…] Sử dụng rsync trên 2 server để đồng bộ dữ liệu cho thư mục /var/www/wordpress, đặt cronjob để đồng bộ thường xuyên. Các bạn có thể tham khảo bài viết này: Hướng dẫn đồng bộ dữ liệu 2 máy chủ centos 7 bằng rsync […]