Tin tức và phân tích của tất cả các thiết bị di động

10 ví dụ về lệnh rsync trong Linux

Lệnh rsync là một công cụ mạnh mẽ và linh hoạt được thiết kế để đồng bộ hóa tệp hiệu quả cho môi trường Linux của bạn. Cho dù bạn là quản trị viên hệ thống, nhà phát triển hay chỉ là người đam mê Linux, việc khai thác các khả năng của lệnh rsync có thể cải thiện quy trình làm việc của bạn ở mức độ lớn. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn một số ví dụ thực tế về cách sử dụng lệnh rsync trong Linux.

Cách cài đặt rsync trong hệ thống Linux

Trước khi thảo luận về các ví dụ về lệnh rsync trong Linux, trước tiên chúng ta hãy tìm hiểu cách cài đặt nó. Sử dụng lệnh dành riêng cho bản phân phối Linux của bạn để cài đặt rsync:

sudo apt install rsync
sudo yum install rsync

Cú pháp và tùy chọn lệnh Rsync Linux

Cú pháp đơn giản của lệnh rsync khiến nó trở thành lựa chọn lý tưởng cho mọi loại người dùng. Cú pháp sử dụng lệnh rsync trong lệnh Linux là:

rsync <options> <source_directory> <destination_directory>

Theo cú pháp trên,có thể nằm trên hệ thống cục bộ hoặc máy chủ từ xa. Tương tự, cũng có thể nằm trên hệ thống cục bộ hoặc hệ thống từ xa. Một số tùy chọn để ghép nối với lệnh rsync là:

Tùy chọnMô tả
-zNén dữ liệu tập tin trước khi gửi
-rtìm kiếm đệ quy dữ liệu bị thiếu trong một thư mục
-Mộtchuyển sang chế độ lưu trữ và bao gồm tất cả các tùy chọn cần thiết như đệ quy, bảo toàn quyền truy cập tệp, liên kết tượng trưng, ​​​​quyền sở hữu tệp và dấu thời gian của tệp
-vxóa các tập tin không tồn tại trên hệ thống của người gửi
-xóa bỏxóa các tập tin không tồn tại trên hệ thống của người gửi

Ví dụ thực tế về lệnh Rsync trong Linux

Ngoài ra, chúng ta hãy xem một số ví dụ về cách sử dụng lệnh rsync trên hệ thống Linux của bạn.

1. Đồng bộ hóa thư mục trên hệ thống tệp cục bộ

Tình huống này là một trong những trường hợp sử dụng phổ biến nhất của rsync. Giả sử bạn có hai thư mục trùng lặp trên hệ thống của mình với một số khác biệt và bạn cần đồng bộ hóa chúng sau khi so sánh chúng. Bạn có thể sử dụng lệnh rsync như:

rsync <options> <source_directory> <destination_directory>

Ví dụ: nếu bạn muốn đồng bộ hóa thư mục nguồn “src_local1” và đích “dest_local1”:

rsync -a -v src_local1/ dest_local1/

Note: Nếu bạn cần duy trì các quyền và quyền sở hữu đối với nội dung thư mục, hãy sử dụng -p (giữ quyền) và -o (giữ quyền chủ sở hữu).

2. Đồng bộ hóa tệp trên hệ thống tệp cục bộ

Giống như bạn có thể đồng bộ hóa hai thư mục, bạn cũng có thể sử dụng lệnh rsync để đồng bộ hóa các tệp riêng lẻ. Để đồng bộ hóa một tập tin, hãy sử dụng cú pháp này:

rsync <options> <source_file> <destination_file>

Ví dụ: để đồng bộ hóa tệp có tên test.txt, hãy sử dụng lệnh này:

rsync -a -v src_local1/test.txt dest_local1/

3. Đồng bộ hóa tệp và thư mục từ hệ thống từ xa sang hệ thống cục bộ

Với lệnh rsync, bạn thậm chí có thể sao chép/đồng bộ hóa với hệ thống từ xa từ hệ thống cục bộ của mình. Sử dụng cú pháp này để sao chép tệp từ hệ thống từ xa:

rsync <options> <remote_username>@<remote_system_ip_address>:<remote_directory> <local_directory>

Ví dụ: nếu bạn cần chuyển từ thư mục nguồn từ xa có tên “src_remote” sang “dest_local”, hãy sử dụng lệnh:

rsync -a -v [email protected]:~/src_remote1/ ~/dest_local/

4. Đồng bộ hóa tệp và thư mục từ hệ thống cục bộ sang hệ thống từ xa

Giống như bạn có thể sao chép tệp từ hệ thống từ xa sang máy cục bộ, bạn cũng có thể sử dụng lệnh rsync để đồng bộ hóa tệp từ hệ thống cục bộ sang hệ thống từ xa mà bạn có quyền truy cập:

rsync <options> <local_source> <remote_username>@<remote_destination_ip>:<remote_destination_directory>

Ví dụ: để sao chép toàn bộ thư mục nguồn cục bộ “src_local” sang thư mục “dest_remote” trong hệ thống từ xa, hãy sử dụng lệnh này:

rsync -a -v ~/src_local1/ [email protected]:~/dest_remote1/

5. Xóa tệp nguồn sau khi đồng bộ hóa

Nếu bạn cần xóa các tệp nguồn sau khi đồng bộ hóa chúng với đích, hãy thêm cờ –remove-source-files như:

rsync <options> --remove-source-files <source_file> <destination_file>

Ví dụ: để xóa bản sao lưu cũ của tệp “test.txt” sau khi bạn sao chép xong từ máy cục bộ sang hệ thống từ xa:

rsync -a --remove-source-files ~/src_local1/test.txt [email protected]:~/dest_local1/

6. Loại trừ hoặc chỉ bao gồm một số tệp/thư mục nhất định khỏi quá trình sao chép/đồng bộ hóa với Rsync

Để loại trừ các tệp/thư mục cụ thể cho rsync khỏi quá trình đồng bộ hóa, hãy sử dụng cờ –exclude như:

rsync <options> --exclude="<pattern_to_exclude>" <source> <destination>

Và để bao gồm một số loại tệp nhất định bằng lệnh rsync, hãy sử dụng cờ –include như:

rsync <options> --include="<pattern_to_include>" <source> <destination>

Ví dụ: để loại trừ tất cả các tệp .txt và bao gồm tất cả các tệp .py bên trong thư mục src_local1:

rsync -a -v --exclude=*.txt --include=*.py ~/src_local1/ [email protected]:~/dest_local1/

7. Đặt giới hạn kích thước tệp để đồng bộ hóa

Bạn thậm chí có thể giới hạn kích thước tệp tối đa mà lệnh rsync có thể được phép chuyển bằng cờ –max-size:

rsync <options> --max-size="<size_limit" <source> <destination>

Ví dụ: nếu bạn cần đặt giới hạn kích thước tệp để sao chép là 1GB:

rsync -a -v --max-size="1G" ~/src_local1/ ~/dest_local1/

8. Đặt giới hạn băng thông để đồng bộ hóa

Nếu bạn đang ở trong một mạng bị hạn chế về tốc độ mạng, bạn có thể sử dụng cờ –bwlimit với lệnh rsync. Đảm bảo đặt băng thông tính bằng kbps với cú pháp sau:

rsync <options> --bwlimit=<bandwith_limit> <source> <destination>

Ví dụ: để đặt băng thông thành 100kbps, bạn có thể sử dụng lệnh rsync như:

rsync -a -v --bwlimit="100" ~/src_local1/ ~/dest_local1/

9. Nén dữ liệu và sao chép vào đích

Đôi khi bạn ở trong mạng kém và cần gửi dữ liệu từ hệ thống của mình đến một máy đích khác, bạn có thể nén dữ liệu rồi gửi đi. Điều này sẽ đảm bảo tổng lượng dữ liệu được truyền ở mức thấp và có thể hoạt động ngay cả ở tốc độ chậm. Để nén dữ liệu, hãy sử dụng cờ -z với lệnh rsync Linux:

rsync <options> -z <source> <destination>

Ví dụ: để nén tệp test.txt và gửi nó đến thư mục đích từ xa ~/dest_remote1/:

rsync -a -v -z ~/src_local1/test.txt [email protected]:~/dest_remote1/

Note: Không sử dụng cờ -z khi truyền tệp trong hệ thống cục bộ, điều này có thể khiến toàn bộ thao tác rất chậm.

10. Hiển thị tiến độ chuyển tiền hiện tại

Đôi khi, khi truyền các tệp lớn bằng lệnh rsync Linux, tất cả những gì bạn có thể thấy là một con trỏ nhấp nháy khiến bạn không biết điều gì đang thực sự xảy ra. Để hiển thị thanh tiến trình của quá trình truyền hiện tại đang diễn ra, hãy sử dụng cờ –progress với lệnh rsync:

rsync -a --progress ~/src_local1/ ~/dest_local1/

Lệnh Rsync Linux không hoạt động? Làm thế nào để khắc phục!

Thật khó chịu khi bạn cần chuyển một số tệp bằng lệnh rsync và gặp phải một số lỗi. Chà, đây là một số mẹo khắc phục sự cố phổ biến để khắc phục sự cố lệnh rsync không hoạt động:

1. Không tìm thấy lệnh rsync

Đôi khi, bạn có thể gặp phải lỗi không tìm thấy lệnh rsync trên hệ thống Linux. Điều này có thể là do gói rsync được cài đặt sai, vì vậy hãy đảm bảo hệ thống Linux của bạn đã cài đặt rsync. Nếu không, hãy sử dụng lệnh thích hợp để cài đặt gói rsync trên bản phân phối của bạn.

2. Quyền bị từ chối

Nói chung, lỗi này phát sinh khi bạn cố ghi vào thư mục mà bạn không có quyền ghi. Hãy xem hướng dẫn mở rộng của chúng tôi về Quyền trong Linux.

3. rsync không thể đặt thời gian

Loại lỗi này phát sinh khi thời gian sửa đổi tệp và thư mục khác nhau trên cả máy nguồn và máy đích. Điều này dẫn đến xung đột về thời gian sửa đổi và cuối cùng dẫn đến lỗi.