Rsync là công cụ đồng bộ hóa dữ liệu mạnh mẽ trên các hệ điều hành Linux và Unix, giúp bạn sao chép, quản lý tệp hiệu quả, đặc biệt là khi làm việc với nhiều máy chủ và lượng dữ liệu lớn. Với khả năng chỉ sao chép những thay đổi thay vì toàn bộ tệp, Rsync tiết kiệm thời gian và băng thông đáng kể. Bài viết này sẽ hướng dẫn chi tiết và tỉ mỉ các trường hợp sử dụng Rsync, từ đồng bộ hóa nội bộ, qua mạng, đến tự động hóa với cronjob, giúp bạn làm chủ công cụ này một cách hiệu quả nhất.
Trước tiên, hãy kiểm tra xem hệ thống của bạn đã có Rsync hay chưa. Chạy lệnh sau để kiểm tra:
rsync --version
Nếu Rsync chưa được cài đặt, bạn có thể cài đặt bằng lệnh sau trên các hệ điều hành phổ biến:
Ubuntu/Debian:
sudo apt-get install rsync
CentOS/Fedora/RHEL:
sudo yum install rsync
Arch Linux:
sudo pacman -S rsync
Cú pháp cơ bản của Rsync:
rsync [tùy chọn] nguồn đích
Khi bạn muốn đồng bộ hóa hai thư mục trên cùng một hệ thống, Rsync là công cụ lý tưởng.
rsync -av /home/user/source/ /home/user/destination/
rsync -av --update /home/user/source/ /home/user/destination/
Rsync hỗ trợ sao chép dữ liệu từ một máy chủ từ xa về máy cục bộ hoặc ngược lại.
rsync -av user@remote_host:/path/to/source/ /local/destination/
rsync -av /local/source/ user@remote_host:/path/to/destination/
Bạn có thể thêm tùy chọn -e để chỉ định giao thức như SSH:
rsync -av -e ssh /local/source/ user@remote_host:/path/to/destination/
Khi bạn muốn đồng bộ và đảm bảo rằng các tệp không còn tồn tại ở thư mục nguồn cũng sẽ bị xóa ở thư mục đích, hãy sử dụng tùy chọn –delete.
rsync -av --delete /home/user/source/ /home/user/destination/
Điều này sẽ xóa các tệp ở thư mục đích nếu chúng không tồn tại ở thư mục nguồn.
Nếu bạn đang sao chép qua mạng và muốn giới hạn băng thông sử dụng, bạn có thể sử dụng tùy chọn –bwlimit.
rsync -av --bwlimit=1000 /home/user/source/ user@remote_host:/path/to/destination/
Lệnh trên sẽ giới hạn băng thông sử dụng là 1000KB/s.
Rsync hỗ trợ sao chép các tệp lớn, và trong trường hợp kết nối bị gián đoạn, Rsync có thể tiếp tục từ điểm dừng với tùy chọn –partial.
rsync -av --partial user@remote_host:/path/to/largefile /local/destination/
Rsync cho phép nén dữ liệu khi truyền tải qua mạng với tùy chọn -z. Điều này rất hữu ích khi truyền dữ liệu qua mạng chậm hoặc có băng thông hạn chế.
rsync -avz /local/source/ user@remote_host:/path/to/destination/
Nếu bạn muốn giữ nguyên quyền sở hữu và quyền truy cập tệp khi đồng bộ hóa, Rsync cung cấp các tùy chọn -p và -o.
rsync -avp /local/source/ /local/destination/
rsync -avo /local/source/ /local/destination/
--inplace
khi đồng bộ hóa tệp lớnTùy chọn này sẽ giúp Rsync ghi đè trực tiếp lên tệp đích thay vì tạo một bản sao tạm thời, rất hiệu quả với các tệp lớn:
rsync -av --inplace /local/source/ /local/destination/
Khi đồng bộ hóa nhiều tệp nhỏ, sử dụng tùy chọn –whole-file để không chia tệp thành các khối dữ liệu, giúp tăng tốc độ đồng bộ hóa.
rsync -av --whole-file /local/source/ /local/destination/
Để tự động hóa quá trình đồng bộ hóa, bạn có thể tích hợp Rsync vào cronjob để thực hiện theo lịch trình.
Mở tệp cronjob bằng lệnh:
crontab -e
Thêm dòng sau để đồng bộ hóa mỗi ngày vào lúc 2 giờ sáng:
0 2 * * * rsync -av /local/source/ /local/destination/
Nếu bạn muốn kiểm tra trước những gì sẽ thay đổi mà không thực hiện, sử dụng tùy chọn –dry-run.
rsync -av --dry-run /local/source/ /local/destination/
Điều này sẽ hiển thị các tệp sẽ được sao chép, xóa, hoặc thay đổi mà không thực sự thực hiện.
Rsync là công cụ mạnh mẽ và linh hoạt cho việc đồng bộ hóa dữ liệu trên các hệ thống Linux và Unix. Từ việc đồng bộ nội bộ đến sao chép dữ liệu giữa các máy chủ từ xa, Rsync cung cấp nhiều tùy chọn để phù hợp với mọi nhu cầu. Bằng cách nắm vững các trường hợp sử dụng và tùy chọn trong Rsync, bạn có thể tối ưu hóa quy trình quản lý và sao lưu dữ liệu của mình một cách hiệu quả.