Hướng Dẫn Sử Dụng rsync Trên Ubuntu: Cài Đặt, Đồng Bộ File & Sao Lưu Hiệu Quả

目次

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:

  1. Cập nhật thông tin gói phần mềm:
sudo apt update
  1. Cài đặt rsync:
sudo apt install rsync
  1. 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ục documents 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ọnGiải thích
-aChế độ archive (sao chép đệ quy, giữ thuộc tính)
-vHiển thị chi tiết tệp được truyền
-nChạy thử (không thực hiện, chỉ hiển thị hành động sẽ làm)
--progressHiển thị tiến trình sao chép
--deleteXó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.

  1. Tạo SSH key trên máy cục bộ (nếu chưa có):
ssh-keygen -t rsa
  1. 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ầutố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ểmNhược điểm
Dễ sử dụng, không cần lệnhMộ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ùngKế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.

 

侍エンジニア塾