Cách để đồng bộ file giữa hai máy chủ Ubuntu
Chào bạn, có vài cách để đồng bộ file giữa hai máy chủ Ubuntu, nhưng giải pháp phổ biến và hiệu quả nhất cho nhu cầu của bạn là sử dụng rsync kết hợp với cron job. Dưới đây là hướng dẫn chi tiết về cách thực hiện.
1. Sử dụng rsync kết hợp Cron Job#
Phương pháp này sử dụng rsync để đồng bộ file và cron job để tự động hóa quá trình này theo một lịch trình cụ thể.
a. rsync là gì?#
rsync là một công cụ dòng lệnh mạnh mẽ dùng để đồng bộ hóa file và thư mục. Nó chỉ sao chép những phần của file đã thay đổi, giúp tiết kiệm băng thông và thời gian. Nó hoạt động bằng cách so sánh file giữa hai thư mục và chỉ di chuyển những file mới hoặc đã cập nhật.
b. Cron Job là gì?#
Cron job là một dịch vụ lập lịch trình của Linux, cho phép bạn tự động chạy các lệnh hoặc tập lệnh vào những khoảng thời gian đã định. Khi kết hợp với rsync, bạn có thể thiết lập để quá trình đồng bộ diễn ra tự động, ví dụ như 5 phút một lần.
c. Các bước thực hiện#
Bước 1: Cài đặt rsync trên cả hai máy chủ
Mặc định, rsync thường đã có sẵn trên Ubuntu. Nếu không, bạn có thể cài đặt bằng lệnh:
sudo apt update sudo apt install rsync
Bước 2: Thiết lập SSH Key
Để rsync có thể hoạt động mà không cần nhập mật khẩu mỗi lần, bạn cần thiết lập SSH key. Bạn có thể làm theo các bước sau:
Trên VPS 1 (VPS nguồn), tạo một SSH key mới nếu bạn chưa có:
ssh-keygen -t rsa -b 4096Sau đó, sao chép public key sang VPS 2 (VPS đích):
ssh-copy-id username@ip_vps_2Thay thếusernamevàip_vps_2bằng thông tin của VPS 2. Bây giờ bạn có thể ssh từ VPS 1 sang VPS 2 mà không cần nhập mật khẩu.
Bước 3: Tạo Cron Job để đồng bộ
Bạn cần tạo một cron job trên VPS 1 để đẩy file từ VPS 1 sang VPS 2 và một cron job trên VPS 2 để kéo file từ VPS 1. Điều này đảm bảo việc đồng bộ là hai chiều.
Trên VPS 1, chỉnh sửa cron job:
crontab -e
Thêm dòng sau vào cuối file để đồng bộ mỗi 5 phút:
*/5 * * * * rsync -avz --delete /duong/dan/thu/muc/vps1/ username@ip_vps_2:/duong/dan/thu/muc/vps2/
*/5 * * * *: Chạy lệnh mỗi 5 phút.rsync -avz:a(archive): Chế độ lưu trữ, giữ nguyên quyền, thời gian, và các thuộc tính khác.v(verbose): Hiển thị chi tiết quá trình đồng bộ.z(compress): Nén dữ liệu trong quá trình truyền.
--delete: Xóa các file ở thư mục đích nếu chúng không còn tồn tại ở thư mục nguồn. Hãy cẩn thận khi sử dụng tùy chọn này, nó sẽ đảm bảo hai thư mục giống hệt nhau nhưng có thể xóa file không mong muốn.
Trên VPS 2, chỉnh sửa cron job:
crontab -e
Thêm dòng sau vào cuối file để đồng bộ ngược lại mỗi 5 phút:
*/5 * * * * rsync -avz --delete /duong/dan/thu/muc/vps2/ username@ip_vps_1:/duong/dan/thu/muc/vps1/
Thay
usernamevàip_vps_1bằng thông tin của VPS 1.Đảm bảo SSH key đã được thiết lập từ VPS 2 sang VPS 1 tương tự như bước 2.
2. Các giải pháp thay thế khác#
a. lsyncd#
lsyncd là một công cụ mạnh mẽ hơn, hoạt động theo thời gian thực (real-time) bằng cách theo dõi các sự kiện thay đổi file và ngay lập tức kích hoạt rsync để đồng bộ. Nó hiệu quả hơn cron job vì không cần phải đợi theo lịch trình cố định.
Ưu điểm: Đồng bộ gần như tức thì.
Nhược điểm: Phức tạp hơn một chút để cấu hình.
b. unison#
unison là một công cụ đồng bộ hai chiều mạnh mẽ, có khả năng phát hiện và giải quyết xung đột khi cả hai file đều được thay đổi cùng lúc.
Ưu điểm: Được thiết kế đặc biệt cho đồng bộ hai chiều, có thể giải quyết xung đột.
Nhược điểm: Yêu cầu cài đặt thêm và cấu hình phức tạp hơn.
Kết luận:
Với nhu cầu của bạn, giải pháp rsync kết hợp với cron job là lựa chọn tốt nhất vì nó dễ cấu hình, hiệu quả và đáng tin cậy. Nếu bạn muốn đồng bộ tức thì, bạn có thể khám phá lsyncd, nhưng rsync đã là đủ cho hầu hết các trường hợp.
3 phản hồi
Bài liên quan trong #Tin tức
-
Hướng dẫn cách sửa boot trong 2 phút không cần cài lại Windows
minhdev · 💬 1 -
Tội phạm mạng đang dần "bỏ trốn" khỏi Telegram
minhdev -
Top 4 Website Đăng Tin Rao Vặt Bất Động Sản Miễn Phí Uy Tín Nhất Hiện Nay
topdev -
Tổng Hợp Các Trang Đăng Tin Bất Động Sản Miễn Phí Hiệu Quả Nhất 2025
topdev -
Cách Rời Nhóm Telegram Trong Im Lặng (Không Ai Biết) – Hướng Dẫn Chi Tiết
topdev