- 1 1. Giới thiệu
- 2 2. Cách cài đặt rsync trên Ubuntu
- 3 3. Cách sử dụng cơ bản rsync
- 4 4. Đồng bộ với máy chủ từ xa
- 5 5. Tùy chọn hữu ích và ví dụ ứng dụng rsync
- 6 6. Giới thiệu công cụ GUI “Grsync”
- 7 7. Một số sự cố thường gặp và cách xử lý
- 8 8. FAQ (Câu hỏi thường gặp)
- 8.5.1 Q1. Làm thế nào để giữ quyền sở hữu và permission khi dùng rsync?
- 8.5.2 Q2. Loại trừ file hoặc thư mục khỏi quá trình đồng bộ thế nào?
- 8.5.3 Q3. Hạn chế băng thông khi truyền với rsync?
- 8.5.4 Q4. Kiểm tra trước các thao tác sẽ thực hiện?
- 8.5.5 Q5. File ẩn (dotfile) có được copy không?
- 8.5.6 Q6. rsync và scp khác nhau thế nào?
- 9 9. Tổng kết
1. Giới thiệu
rsync là gì?
rsync
là một công cụ dòng lệnh cho phép đồng bộ và sao chép tệp hoặc thư mục một cách nhanh chóng và hiệu quả. Đặc biệt, nó được sử dụng rộng rãi trên các hệ thống Linux và Unix nhờ vào cơ chế chỉ truyền những phần thay đổi (differential sync), giúp đồng bộ hóa số lượng lớn tệp mà không gây lãng phí. Trên Ubuntu và nhiều bản phân phối Linux khác, rsync thường đã được cài sẵn và là công cụ không thể thiếu đối với quản trị viên hệ thống hoặc nhà phát triển.
Lợi ích khi sử dụng rsync trên Ubuntu
Trên Ubuntu, rsync
hoạt động cực kỳ hiệu quả cho việc sao lưu dữ liệu hàng ngày hoặc đồng bộ nhiều thư mục. Không cần dựa vào giao diện đồ họa, chỉ với vài dòng lệnh trong Terminal, bạn có thể truyền tệp nhanh chóng giữa máy cục bộ hoặc từ xa.
Đặc biệt hữu ích trong các tình huống sau:
- Sao lưu định kỳ sang ổ cứng ngoài (HDD) hoặc NAS
- Đồng bộ thư mục dự án đang phát triển
- Triển khai dữ liệu lên máy chủ từ xa
- Tăng độ khả dụng nhờ chức năng mirror file
Sự khác biệt so với các lệnh khác
So với lệnh cp
, rsync chỉ truyền các phần thay đổi giữa nguồn và đích nên rút ngắn đáng kể thời gian xử lý. So với scp
, rsync hỗ trợ tiếp tục khi gặp lỗi, thiết lập giới hạn băng thông linh hoạt và có thể giữ nguyên các thuộc tính tệp (chủ sở hữu, quyền hạn, timestamp, v.v.) khi truyền.
Mục tiêu của bài viết này
Bài viết này sẽ hướng dẫn chi tiết cách cài đặt và sử dụng rsync
trong môi trường Ubuntu, kèm ví dụ lệnh thực tế và các trường hợp sử dụng. Nội dung được trình bày từng bước từ cơ bản đến nâng cao, phù hợp cho cả người mới bắt đầu (bao gồm cả công cụ GUI và xử lý sự cố), giúp bạn làm chủ rsync một cách hiệu quả.
2. Cách cài đặt rsync trên Ubuntu
Kiểm tra rsync đã được cài sẵn trên Ubuntu hay chưa
Trên đa số hệ thống Ubuntu, rsync thường đã được cài đặt sẵn. Trước tiên, hãy kiểm tra rsync có khả dụng hay không với lệnh sau:
rsync --version
Nếu lệnh này trả về thông tin phiên bản, bạn đã cài đặt sẵn và có thể sử dụng luôn.
Cách cài đặt rsync nếu chưa có
Nếu xuất hiện thông báo như “Command not found” hoặc “rsync: command not found”, hãy thực hiện các bước sau để cài đặt:
- Cập nhật thông tin gói phần mềm:
sudo apt update
- Cài đặt rsync:
sudo apt install rsync
- Sau khi cài đặt, kiểm tra lại phiên bản:
rsync --version
Nếu thông tin phiên bản hiển thị, cài đặt đã thành công.
Có cần cài bằng snap hoặc phương pháp khác không?
Trên Ubuntu, cài đặt rsync bằng APT là phương pháp khuyến nghị. Dù có bản snap, nhưng phiên bản APT thường là đủ, ổn định và tương thích hơn. Chỉ nên dùng snap nếu có nhu cầu đặc biệt, còn lại hãy ưu tiên APT.
Lưu ý khi cài đặt
- Với Ubuntu phiên bản cũ, có thể cần cập nhật kho phần mềm.
- Cần quyền root, đừng quên dùng
sudo
trước lệnh. - Nên đảm bảo mạng ổn định để tránh lỗi trong quá trình cài đặt.
3. Cách sử dụng cơ bản rsync
Cú pháp cơ bản của rsync
Cú pháp rsync rất đơn giản nhưng linh hoạt. Hình thức cơ bản như sau:
rsync [tùy chọn] nguồn đích
Ví dụ, để sao chép thư mục /home/user/documents/
sang /mnt/backup/
, bạn dùng:
rsync -av /home/user/documents/ /mnt/backup/
Trong đó các tùy chọn sau thường dùng:
-a
: chế độ archive (giữ cấu trúc thư mục, quyền hạn, chủ sở hữu…)-v
: hiển thị chi tiết tệp đã sao chép
Lưu ý về dấu gạch chéo (/) ở cuối thư mục
Khi dùng rsync, thêm hoặc bỏ dấu “/” ở nguồn sẽ cho kết quả khác nhau.
/home/user/documents/
(có “/”)
→ Chỉ sao chép nội dung bên trong (ví dụ:file1.txt
,file2.txt
…)/home/user/documents
(không có “/”)
→ Sao chép cả thư mụcdocuments
vào đích (/mnt/backup/documents/file1.txt
)
Điểm này rất quan trọng khi dùng rsync. Hãy chọn phù hợp với mục đích sử dụng.
Các tùy chọn thường dùng
rsync có rất nhiều tùy chọn, nhưng phổ biến nhất là:
Tùy chọn | Giải thích |
---|---|
-a | Chế độ archive (sao chép đệ quy, giữ thuộc tính) |
-v | Hiển thị chi tiết tệp được truyền |
-n | Chạy thử (không thực hiện, chỉ hiển thị hành động sẽ làm) |
--progress | Hiển thị tiến trình sao chép |
--delete | Xóa tệp ở đích không có ở nguồn |
Xác nhận trước khi thực thi
Nếu muốn kiểm tra trước các tệp sẽ được đồng bộ mà không thực sự chuyển, hãy dùng tùy chọn -n
hoặc --dry-run
.
rsync -av --dry-run /home/user/documents/ /mnt/backup/
Cách này giúp bạn xác nhận nội dung đồng bộ, tránh lỗi ngoài ý muốn.
Xử lý file ẩn (dot file)
rsync mặc định cũng đồng bộ các file ẩn (bắt đầu bằng dấu .
). Nhờ đó, các file cấu hình hoặc môi trường sẽ được đồng bộ đầy đủ.
4. Đồng bộ với máy chủ từ xa
Đồng bộ rsync qua SSH
Một ưu điểm lớn của rsync là có thể đồng bộ tệp với máy chủ từ xa thông qua SSH. Nhờ đó, dữ liệu được truyền đi an toàn qua mạng.
Cú pháp cơ bản:
rsync -avz nguồn user@ip-hoặc-host:đích
Ví dụ, để đồng bộ thư mục /home/user/documents/
sang /var/www/backup/
trên máy chủ từ xa:
rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
- Tùy chọn
-z
: nén dữ liệu khi truyền, hữu ích nếu đường truyền chậm. user@host
: tên người dùng SSH và địa chỉ máy chủ từ xa.
Kết nối lần đầu và cấu hình SSH key
Khi kết nối lần đầu, sẽ có yêu cầu xác nhận host. Hãy nhập “yes” nếu bạn đồng ý. Nếu đồng bộ thường xuyên, nên thiết lập SSH key để không cần nhập mật khẩu mỗi lần.
- Tạo SSH key trên máy cục bộ (nếu chưa có):
ssh-keygen -t rsa
- Sao chép key lên máy chủ từ xa:
ssh-copy-id user@example.com
Từ giờ, bạn có thể dùng rsync mà không cần nhập mật khẩu.
Chỉ định cổng SSH khác
Nếu máy chủ SSH dùng cổng khác 22, hãy chỉ định bằng -e
:
rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/
Lưu ý về đồng bộ hai chiều
rsync chỉ đồng bộ một chiều từ nguồn sang đích. Nếu muốn đồng bộ hai chiều, hãy cân nhắc dùng công cụ khác như unison
.
5. Tùy chọn hữu ích và ví dụ ứng dụng rsync
Các tùy chọn hữu ích nâng cao của rsync
rsync không chỉ sao chép/dong bộ cơ bản mà còn có nhiều tùy chọn nâng cao. Sau đây là một số ví dụ thực tế.
–delete: Xóa file ở đích không có ở nguồn
Dùng tùy chọn này để tự động xóa các file ở đích mà nguồn không còn. Cực kỳ hữu ích khi mirror hoàn toàn.
rsync -av --delete /home/user/source/ /mnt/backup/
Lưu ý: Dễ xóa nhầm file nên hãy kiểm tra bằng --dry-run
trước.
–exclude: Loại trừ file/thư mục nhất định
Muốn bỏ qua một số file/thư mục khỏi quá trình đồng bộ, hãy dùng --exclude
.
rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/
Kết hợp nhiều pattern để loại trừ linh hoạt.
–bwlimit: Giới hạn băng thông truyền tải
Để không làm nghẽn mạng khi dùng rsync nền, hãy dùng --bwlimit
:
rsync -av --bwlimit=5000 /data/ user@remote:/data/
(Ví dụ này giới hạn 5MB/s)
Một số ví dụ thực tế
Sao lưu với rsync
rsync là công cụ sao lưu hiệu quả, dễ dùng. Ví dụ lệnh sao lưu hằng ngày vào ổ cứng ngoài:
rsync -a --delete /home/user/ /media/usb/backup/
Kết hợp với --delete
để tạo mirror hoàn chỉnh.
Tự động hóa với cron
rsync có thể kết hợp với cron
để tự động đồng bộ theo lịch. Ví dụ chạy sao lưu lúc 2h sáng mỗi ngày:
0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1
Tự động hóa giúp tối ưu vận hành hệ thống, không cần thao tác thủ công.
rsync: Linh hoạt và hiệu quả
Điểm mạnh của rsync là tùy biến cho mọi nhu cầu và tối ưu hiệu suất truyền tải. Đây là công cụ mạnh mẽ cho sao chép/dong bộ an toàn, nhanh chóng, vượt xa một lệnh copy thông thường.
6. Giới thiệu công cụ GUI “Grsync”
Dành cho người không quen dòng lệnh
rsync
rất mạnh nhưng chủ yếu dùng qua Terminal. Người mới hoặc thích giao diện đồ họa có thể cảm thấy khó tiếp cận. Khi đó, bạn nên dùng Grsync – ứng dụng GUI dựa trên rsync.
Grsync cung cấp giao diện trực quan để thiết lập và thực thi đồng bộ hóa bằng rsync.
Cách cài đặt Grsync trên Ubuntu
Trên Ubuntu, bạn có thể cài Grsync dễ dàng bằng APT.
sudo apt update
sudo apt install grsync
Sau khi cài, Grsync sẽ hiển thị trong danh sách ứng dụng. Nhấp vào để mở giao diện đồ họa.

Cách sử dụng cơ bản Grsync
Giao diện Grsync rất trực quan, bạn có thể:
- Nhập đường dẫn nguồn và đích
- Tích chọn các tùy chọn chính của rsync như “sao chép đệ quy”, “giữ thuộc tính file”, “tùy chọn xóa”, …
- Chỉ định các mẫu loại trừ
- Nút “Dry-run” (chạy thử)
Sau khi thiết lập, chỉ cần nhấn “Thực hiện” là rsync sẽ chạy nền thực hiện đồng bộ.
Quản lý nhiều profile với Grsync
Grsync cho phép lưu nhiều cấu hình (profile). Rất tiện cho việc quản lý nhiều tác vụ sao lưu khác nhau, ví dụ:
- Profile 1: Sao lưu sang USB
- Profile 2: Đồng bộ với NAS
- Profile 3: Mirror lên máy chủ ngoài
Chuyển đổi các profile này rất nhanh ngay trên giao diện GUI.
Ưu & nhược điểm khi dùng Grsync
Ưu điểm | Nhược điểm |
---|---|
Dễ sử dụng, không cần lệnh | Một số tùy chọn nâng cao không có trong GUI |
Có thể kiểm tra ý nghĩa các tùy chọn trước khi dùng | Kết quả hiển thị trừu tượng, có thể chưa đủ với người quen dùng dòng lệnh |
Bắt đầu an toàn với chức năng chạy thử (dry-run) | Thiếu linh hoạt hơn Terminal trong một số trường hợp |
7. Một số sự cố thường gặp và cách xử lý
Không giữ được quyền (permission) của file
Triệu chứng: Quyền sở hữu hoặc quyền truy cập file ở đích thay đổi.
Nguyên nhân: Chạy rsync không có quyền sudo hoặc không dùng -a
.
Cách xử lý:
- Dùng tùy chọn
-a
một cách rõ ràng. - Nếu cần, thêm
sudo
khi chạy rsync.
sudo rsync -a /source/ /destination/
Bỏ qua symlink (liên kết biểu tượng)
Triệu chứng: Liên kết không được sao chép hoặc bị sao thành file thường.
Nguyên nhân: Mặc định rsync copy symlink như symlink, nhưng có thể thay đổi tùy vào tùy chọn.
Cách xử lý:
- Giữ nguyên symlink: Dùng
-a
. - Copy thành file thực: Thêm
--copy-links
.
Báo lỗi “Permission denied”
Triệu chứng: Lỗi không đủ quyền với một số file/thư mục.
Nguyên nhân: Thiếu quyền truy cập.
Cách xử lý:
- Chạy rsync với
sudo
. - Kiểm tra lại quyền truy cập của nguồn và đích.
sudo rsync -a /source/ /destination/
Báo lỗi “rsync: connection unexpectedly closed” (khi kết nối từ xa)
Triệu chứng: Đồng bộ bị gián đoạn khi truyền qua SSH.
Nguyên nhân: Cấu hình SSH chưa đúng, sai đường dẫn hoặc quyền.
Cách xử lý:
- Thử kết nối SSH thủ công:
ssh user@host
- Kiểm tra lại đường dẫn đích
- Xem xét vấn đề firewall hoặc cổng kết nối
“Argument list too long”
Triệu chứng: Lỗi khi đồng bộ thư mục quá nhiều file.
Nguyên nhân: Vượt quá giới hạn số lượng tham số dòng lệnh.
Cách xử lý:
- Dùng
--exclude
hoặc--include
để lọc bớt - Chia thư mục ra đồng bộ từng phần
8. FAQ (Câu hỏi thường gặp)
Dưới đây là những câu hỏi thường gặp khi sử dụng rsync trên Ubuntu, tập trung vào các vấn đề mà người mới hay gặp phải, giải thích rõ ràng, dễ hiểu.
Q1. Làm thế nào để giữ quyền sở hữu và permission khi dùng rsync?
A1. Dùng tùy chọn -a
(archive) sẽ giữ nguyên permission, timestamp, chủ sở hữu, nhóm… Rất cần thiết khi sao lưu các file cấu hình hệ thống.
rsync -a /etc/ /backup/etc/
Q2. Loại trừ file hoặc thư mục khỏi quá trình đồng bộ thế nào?
A2. Dùng tùy chọn --exclude
để loại trừ file hoặc pattern nhất định.
rsync -av --exclude '*.log' /project/ /backup/project/
Có thể dùng wildcard và loại trừ cả thư mục node_modules
hay .git
rất linh hoạt.
Q3. Hạn chế băng thông khi truyền với rsync?
A3. Dùng --bwlimit
để giới hạn tốc độ (đơn vị KB/s):
rsync -av --bwlimit=5000 /data/ user@remote:/data/
Ví dụ này giới hạn tối đa 5MB/s, thích hợp khi không muốn nghẽn mạng.
Q4. Kiểm tra trước các thao tác sẽ thực hiện?
A4. Dùng --dry-run
(hoặc -n
) để chỉ mô phỏng, không thực sự truyền file.
rsync -av --dry-run /source/ /destination/
Rất nên kiểm tra trước khi chạy lệnh thật, đặc biệt với --delete
.
Q5. File ẩn (dotfile) có được copy không?
A5. Có, rsync mặc định đồng bộ cả file ẩn (bắt đầu bằng .
). Nếu muốn loại trừ, hãy dùng --exclude '.*'
.
Q6. rsync và scp khác nhau thế nào?
A6. scp
truyền toàn bộ file mỗi lần, thích hợp cho copy đơn giản. rsync
chỉ truyền phần thay đổi nên tối ưu cho backup/mirror. Ngoài ra, rsync hỗ trợ tiếp tục từ chỗ dừng khi bị ngắt.
9. Tổng kết
Bài viết đã trình bày từ cách cài đặt rsync trên Ubuntu, cách sử dụng cơ bản, đồng bộ với máy chủ từ xa, các tùy chọn tiện ích, dùng GUI Grsync, xử lý lỗi thường gặp và phần FAQ.
Tóm tắt ưu điểm của rsync
- Truyền dữ liệu nhanh nhờ chỉ đồng bộ phần thay đổi, tránh lãng phí tài nguyên.
- Giữ nguyên permission và owner khi sao lưu hoặc mirror.
- Hỗ trợ đồng bộ từ xa an toàn qua SSH.
- Nhiều tùy chọn linh hoạt như loại trừ, giới hạn băng thông…
- Tự động hóa với cron, dễ dàng sao lưu định kỳ.
- Dễ dùng cho người mới nhờ GUI Grsync.
rsync – Công cụ bắt buộc cho người dùng Linux
Trên môi trường Linux (bao gồm Ubuntu), rsync là công cụ cơ bản cho sao lưu, đồng bộ và quản lý file. Ngay cả người mới cũng có thể sử dụng an toàn, hiệu quả với các hướng dẫn ở bài này.
Dù cú pháp đơn giản, rsync rất mạnh mẽ nếu bạn tận dụng các tùy chọn nâng cao. Hãy bắt đầu từ cơ bản, rồi tùy biến cho phù hợp với nhu cầu thực tế của mình.