Rsync trên Ubuntu: Hướng Dẫn Toàn Diện về Đồng Bộ Tập Tin Nhanh, Sao Lưu và Chuyển Giao Từ Xa

.

目次

1. Giới thiệu

rsync là gì?

rsync là một công cụ dòng lệnh được thiết kế để đồng bộ và sao chép tệp và thư mục một cách nhanh chóng và hiệu quả. Nó được sử dụng rộng rãi trên các hệ thống Linux và Unix‑like, và nhờ thuật toán truyền tải delta, chỉ truyền những phần khác nhau giữa nguồn và đích. Điều này giúp nó rất hiệu quả ngay cả khi xử lý một lượng lớn tệp. Trên Ubuntu và nhiều bản phân phối Linux khác, rsync thường được cài đặt sẵn, trở thành công cụ thiết yếu cho các quản trị viên hệ thống và nhà phát triển.

Lợi ích khi dùng rsync trên Ubuntu

Trên Ubuntu, rsync cực kỳ hữu ích cho việc sao lưu tệp hàng ngày và đồng bộ thư mục. Không cần giao diện đồ họa, bạn có thể thực hiện truyền tệp nhanh—cả cục bộ và từ xa—chỉ bằng vài lệnh trong terminal.

Nó đặc biệt hữu dụng trong các trường hợp sau:

  • Sao lưu định kỳ lên ổ HDD ngoài hoặc thiết bị NAS
  • Đồng bộ thư mục dự án trong quá trình phát triển
  • Triển khai tệp lên máy chủ từ xa
  • Tăng tính sẵn sàng bằng cách sao chép (mirroring) tệp

rsync khác gì so với các lệnh khác

So với lệnh cp, rsync chỉ truyền những phần khác nhau giữa nguồn và đích, giảm đáng kể thời gian xử lý. So với scp, rsync hỗ trợ tiếp tục truyền sau lỗi và kiểm soát băng thông linh hoạt. Ngoài ra, nó còn có thể bảo toàn các thuộc tính tệp như quyền sở hữu, quyền truy cập và dấu thời gian, đây là một ưu điểm lớn.

Mục đích của bài viết này

Bài viết này giải thích cách cài đặt và sử dụng rsync một cách hiệu quả trong môi trường Ubuntu, kèm theo các ví dụ lệnh thực tế và các trường hợp sử dụng thực tế. Để người mới bắt đầu có thể nhanh chóng làm quen, chúng tôi cũng sẽ đề cập đến các công cụ GUI và các mẹo khắc phục sự cố khi học rsync từng bước.

2. Cài đặt rsync trên Ubuntu

Kiểm tra rsync đã được cài sẵn chưa

Trong hầu hết các môi trường Ubuntu, rsync đã được cài đặt sẵn theo mặc định. Bạn có thể kiểm tra bằng lệnh sau:

rsync --version

Nếu hiển thị thông tin phiên bản, rsync đã sẵn sàng để sử dụng.

Cài đặt rsync nếu chưa có

Nếu bạn nhận được 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 danh sách gói:
    sudo apt update
    
  1. Cài đặt rsync:
    sudo apt install rsync
    
  1. Xác minh việc cài đặt:
    rsync --version
    

Nếu xuất hiện thông tin phiên bản, việc cài đặt đã thành công.

Cần cài đặt qua Snap hay các phương pháp khác không?

Trên Ubuntu, cài đặt rsync qua APT là cách được khuyến nghị nhất. Mặc dù có các gói Snap, phiên bản APT thường đủ cho hầu hết các nhu cầu và mang lại độ ổn định, tương thích tốt hơn. Trừ khi bạn có lý do đặc biệt, APT là phương pháp ưu tiên.

Lưu ý khi cài đặt

  • Trên các phiên bản Ubuntu cũ, có thể cần cập nhật kho lưu trữ.
  • Cần quyền root, vì vậy đừng quên dùng sudo.
  • Kết nối mạng không ổn định có thể gây lỗi cài đặt; nên dùng kết nối ổn định.

3. Sử dụng cơ bản của rsync

Cú pháp rsync cơ bản

Cú pháp lệnh rsync đơn giản nhưng rất linh hoạt. Dạng cơ bản là:

rsync [options] source destination

Ví dụ, để sao chép nội dung của /home/user/documents/ vào /mnt/backup/:

rsync -av /home/user/documents/ /mnt/backup/

Lệnh này sử dụng các tùy chọn sau:

  • -a : Chế độ Archive (giữ nguyên cấu trúc thư mục, quyền, sở hữu, v.v.)
  • -v : Hiển thị chi tiết (cho biết tệp nào đang được sao chép)

Hành vi của dấu gạch chéo cuối cùng

Trong rsync, việc có hoặc không có dấu gạch chéo (slash) ở cuối đường dẫn nguồn sẽ thay đổi cách hoạt động:

  • /home/user/documents/ (có slash) → Chỉ sao chép nội dung bên trong.
  • /home/user/documents (không slash) → Sao chép cả thư mục documents itself.

.

Đây là một hành vi quan trọng của rsync, cần được sử dụng một cách thích hợp tùy theo mục tiêu của bạn.

Các tùy chọn thường được sử dụng

OptionDescription
-aArchive mode (recursive and preserves attributes)
-vDisplays detailed transfer output
-nDry run (shows what would happen without executing)
--progressShows transfer progress
--deleteDeletes files in the destination that no longer exist in the source

Xem trước các hành động trước khi thực thi

Để kiểm tra những gì rsync sẽ làm trước khi thực sự chuyển tập tin, hãy sử dụng tùy chọn --dry-run:

rsync -av --dry-run /home/user/documents/ /mnt/backup/

Điều này giúp ngăn ngừa mất dữ liệu do nhầm lẫn.

Xử lý các tập tin ẩn

Mặc định, rsync bao gồm các tập tin ẩn (những tập tin bắt đầu bằng .), cho phép đồng bộ các tập tin cấu hình và các thiết lập môi trường.

4. Đồng bộ với máy chủ từ xa

Đồng bộ từ xa qua SSH

Một trong những ưu điểm lớn nhất của rsync là khả năng đồng bộ tập tin với máy chủ từ xa qua SSH, đảm bảo việc truyền dữ liệu an toàn.

rsync -avz source user@remote_host:destination

Ví dụ:

rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
  • -z bật nén trong quá trình truyền.
  • user@host chỉ định tài khoản SSH.

Kết nối lần đầu và xác thực bằng khóa SSH

Lần kết nối đầu tiên, bạn có thể được yêu cầu xác nhận tính xác thực của máy chủ. Nhập “yes” nếu đúng.

Đối với việc sử dụng thường xuyên, nên dùng xác thực bằng khóa SSH để tránh nhập mật khẩu mỗi lần:

ssh-keygen -t rsa
ssh-copy-id user@example.com

Chỉ định cổng SSH tùy chỉnh

Nếu máy chủ từ xa sử dụng cổng SSH không phải mặc định, hãy chỉ định nó bằng -e:

rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/

Lưu ý quan trọng về đồng bộ hai chiều

rsync chỉ thực hiện đồng bộ một chiều. Để có đồng bộ hai chiều thực sự, hãy cân nhắc các công cụ như unison.

5. Các tùy chọn rsync hữu ích và ví dụ thực tế

Các tùy chọn nâng cao vượt ra ngoài cơ bản

–delete: Xóa các tập tin không có trong nguồn

rsync -av --delete /home/user/source/ /mnt/backup/

Luôn thử nghiệm với --dry-run trước khi sử dụng tùy chọn này.

–exclude: Loại trừ các tập tin hoặc thư mục cụ thể

rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/

–bwlimit: Giới hạn băng thông

rsync -av --bwlimit=5000 /data/ user@remote:/data/

Các trường hợp sử dụng thực tế

Sử dụng rsync để sao lưu

rsync -a --delete /home/user/ /media/usb/backup/

Tự động hoá với cron

0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1

Cân bằng giữa tính linh hoạt và hiệu suất

rsync kết hợp tính linh hoạt xuất sắc với hiệu suất truyền tải cao, biến nó thành một công cụ mạnh mẽ cho việc đồng bộ tập tin an toàn và chính xác.

6. Công cụ GUI: Grsync

Được khuyến nghị cho người dùng không thoải mái với dòng lệnh

Grsync là giao diện đồ họa cho rsync, cho phép người dùng cấu hình và thực thi các tác vụ đồng bộ một cách trực quan.

Cài đặt Grsync trên Ubuntu

sudo apt update
sudo apt install grsync

Sử dụng cơ bản

  • Chỉ định đường dẫn nguồn và đích
  • Chọn các tùy chọn rsync qua các ô kiểm
  • Cấu hình các mẫu loại trừ
  • Thực hiện chạy khô (dry run) một cách an toàn

Quản lý dựa trên hồ sơ

Grsync cho phép lưu cấu hình dưới dạng hồ sơ, giúp dễ dàng quản lý nhiều tác vụ sao lưu hoặc đồng bộ khác nhau.

Ưu và nhược điểm

ProsCons
Intuitive GUI, no commands requiredSome advanced options are not available
Easy to understand optionsLess detailed output than terminal usage
Safe for beginnersLess flexible than direct rsync usage

7. Các vấn đề thường gặp và giải pháp

Quyền tập tin không được bảo toàn

sudo rsync -a /source/ /destination/

Liên kết biểu tượng không được xử lý như mong đợi

  • Bảo toàn liên kết: dùng -a
  • Sao chép các tập tin thực: dùng --copy-links

Lỗi “Permission denied”

sudo rsync -a /source/ /destination/

Lỗi kết nối khi đồng bộ từ xa

  • Kiểm tra kết nối SSH
  • Kiểm tra đường dẫn đích và quyền truy cập

Lỗi “Argument list too long”

  • Sử dụng quy tắc include/exclude
  • Chia đồng bộ thành các lô nhỏ hơn

8. Câu hỏi thường gặp

Q1. Làm sao để bảo toàn quyền sở hữu và quyền truy cập?

A. Dùng tùy chọn -a.

Q2. Làm sao để loại trừ các tập tin cụ thể?

A. Sử dụng --exclude.

Câu hỏi 3. Làm thế nào để giới hạn việc sử dụng băng thông?

A. Sử dụng --bwlimit.

Câu hỏi 4. Tôi có thể xem trước các hành động trước khi thực thi không?

A. Sử dụng --dry-run.

Câu hỏi 5. Các tệp ẩn có được sao chép không?

A. Có, mặc định.

Câu hỏi 6. Sự khác nhau giữa rsync và scp là gì?

A. rsync hỗ trợ chuyển đổi delta và khả năng tiếp tục, giúp hiệu quả hơn.

9. Tóm tắt

Bài viết này đã đề cập đến cài đặt rsync, sử dụng cơ bản và nâng cao, đồng bộ từ xa, công cụ GUI, khắc phục sự cố và các câu hỏi thường gặp.

Tại sao rsync lại quan trọng

  • Chuyển đổi nhanh dựa trên delta
  • Bảo toàn quyền truy cập và sở hữu
  • Đồng bộ từ xa an toàn
  • Tùy chỉnh cao với nhiều tùy chọn
  • Hỗ trợ tự động hoá qua cron
  • Thân thiện với người mới qua công cụ GUI

rsync là công cụ cơ bản cho người dùng Linux. Bằng cách nắm vững các kiến thức cơ bản và dần dần áp dụng các tùy chọn nâng cao, bạn có thể đạt được quy trình quản lý tệp và sao lưu ở mức chuyên nghiệp.

侍エンジニア塾