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:
- Hiệu quả trong việc sao lưu và dồng bộ file từ 1 hệ thống khác
- Hỗ trợ sao chép links, devices, owners, groups và permissions.
- Nhanh hơn sử dụng SCP (secure copy).
- 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 VPS3>
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 VPS2>
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.
[…] 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 […]