Download app

Quét mã QR để tải về ứng dụng

QR code

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

11/08/2021, 04:04 pm
776

Rsync (Đồng bộ hóa Từ xa) là lệnh được sử dụng phổ biến nhất để sao chép và đồng bộ hóa các tệp và thư mục từ xa cũng như cục bộ trong các hệ thống Linux/Unix.

Với sự trợ giúp của lệnh Rsync, bạn có thể sao chép và đồng bộ hóa dữ liệu của mình từ xa và cục bộ trên các thư mục, đĩa và mạng, thực hiện sao lưu dữ liệu và nhân bản giữa hai máy Linux.

Bài viết này sẽ giải thích 10 cách sử dụng cơ bản và nâng cao của lệnh Rsync để truyền tệp của bạn từ xa và cục bộ trong các máy chạy Linux. Bạn không cần phải là người dùng root để tiến hành lệnh Rsync.

Một số ưu điểm và tính năng của lệnh Rsync

Nó sao chép và đồng bộ hóa các tập tin đến hoặc từ một hệ thống từ xa một cách hiệu quả.

Hỗ trợ sao chép liên kết, thiết bị, chủ sở hữu, nhóm và quyền.

Nó nhanh hơn scp (Sao chép an toàn) vì Rsync sử dụng giao thức cập nhật từ xa cho phép chỉ chuyển sự khác biệt giữa hai bộ tệp. Nó sao chép toàn bộ nội dung của một tệp hoặc một thư mục từ nguồn đến đích nhưng từ lần tiếp theo, nó chỉ sao chép các khối và byte đã thay đổi đến đích.

Rsync tiêu thụ ít băng thông hơn vì nó sử dụng phương pháp nén và giải nén trong khi gửi và nhận dữ liệu ở cả hai đầu.

Cú pháp cơ bản của lệnh Rsync

# rsync options source destination

Một số tùy chọn phổ biến được sử dụng với lệnh Rsync

-v : verbose

-r : sao chép dữ liệu một cách đệ quy (nhưng không bảo toàn dấu thời gian và quyền trong khi truyền dữ liệu).

-A : chế độ lưu trữ, cho phép sao chép các tệp một cách đệ quy và nó cũng lưu giữ các liên kết tượng trưng, ​​quyền đối với tệp, quyền sở hữu của người dùng và nhóm và dấu thời gian.

-z : nén dữ liệu tệp.

-h : con người có thể đọc được, số đầu ra ở định dạng con người có thể đọc được.

[Bạn cũng có thể thích: Cách đồng bộ hóa tệp/thư mục bằng Rsync với cổng SSH không chuẩn ]

Cài đặt lệnh Rsync trong hệ thống Linux

Chúng tôi có thể cài đặt gói rsync với sự trợ giúp của lệnh sau trong bản phân phối Linux của bạn.

$ Sudo apt-get install rsync [Trên Debian/Ubuntu & Mint] 

$ pacman -S rsync [Trên Arch Linux]

$sys-apps/rsync [Trên Gentoo]

floatge$ sudo dnf install rsync [Trên Fedora/CentOS/RHEL và Rocky Linux/AlmaLinux]

$ sudo zypper install rsync [Trên openSUSE ]

1. Sao chép và đồng bộ hóa tệp/thư mục cục bộ

Sao chép/đồng bộ hóa một tệp tại máy tính cục bộ

Lệnh sau sẽ đồng bộ một tệp tin trên máy cục bộ từ vị trí này sang vị trí khác. Ở đây trong ví dụ này, tên tệp backup.tar cần được sao chép hoặc đồng bộ hóa với thư mục /tmp/backups/.

[root @ tecmint] # rsync -zvh backup.tar.gz/tmp/backups/

created directory/ tmp/backup

backup.tar.gz

đã gửi 224,54K byte nhận được 70 byte 449,21 nghìn byte/giây

tổng kích thước là 224,40K tốc độ tăng là 1,00

Trong ví dụ trên, bạn có thể thấy rằng nếu điểm nhận chưa tồn tại, Rsync sẽ tự động tạo một thư mục cho nó.

Sao chép, đồng bộ danh mục trên máy tính cục bộ

Lệnh sau sẽ chuyển hoặc đồng bộ tất cả các tệp từ một thư mục sang một thư mục khác trong cùng một máy. Ở đây trong ví dụ này, /root/rpmpkgs chứa một số tệp gói rpm và bạn muốn thư mục đó được sao chép bên trong thư mục /tmp/backups/.

[root @ tecmint] # rsync -avzh/root/rpmpkgs/tmp/backup/

gửi danh sách tệp tăng dần

rpmpkgs/

rpmpkgs/httpd-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

rpmpkgs/mod_ssl-2.4 .37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm

rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

đã gửi 3,47M byte nhận được 96 byte 2,32M byte/giây

tổng kích thước là 3,74M tốc độ là 1,08

2. Sao chép/đồng bộ hóa tệp và thư mục đến hoặc từ máy chủ

Sao chép thư mục từ máy chủ cục bộ sang máy chủ từ xa

Lệnh này sẽ đồng bộ hóa một thư mục từ máy chủ cục bộ máy từ xa. Ví dụ: có một thư mục trong máy tính cục bộ của bạn “rpmpkgs” chứa một số gói RPM và bạn muốn nội dung của thư mục cục bộ đó gửi đến một máy chủ từ xa, bạn có thể sử dụng lệnh sau:

[root@tecmint:~] # rsync-avzh/root/rpmpkgs root@192.168.0.141:/root/

Tính xác thực của máy chủ '192.168.0.141 (192.168.0.141)'.

Dấu vân tay chính ED25519 là SHA256: bH2tiWQn4S5o6qmZhmtXcBROV5TU5H4t2C42QDEMx1c.

Khóa này không được biết bởi bất kỳ tên nào khác

Bạn có chắc chắn muốn tiếp tục kết nối (có/không/[vân tay]) không? có

Cảnh báo: Đã thêm vĩnh viễn '192.168.0.141' (ED25519) vào danh sách các máy chủ đã biết.

Mật khẩu của root@192.168.0.141: 

gửi danh sách tệp tăng dần

rpmpkgs/

rpmpkgs/httpd-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm

rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

đã gửi 3,74M byte nhận được 96 byte 439,88K byte/giây

tổng kích thước là 3,74M tốc độ là 1,00

Sao chép/đồng bộ hóa danh mục từ xa đến máy cục bộ

Lệnh này sẽ giúp bạn đồng bộ thư mục từ xa với thư mục cục bộ. Ở đây trong ví dụ này, một thư mục /root/rpmpkgs nằm trên một máy chủ từ xa đang được sao chép vào máy tính cục bộ của bạn trong /tmp/myrpms.

[root@tecmint:~] # rsync-avzh root@192.168.0.141: /root/rpmpkgs/tmp/myrpms

Mật khẩu của root@192.168.0.141: 

nhận danh sách tệp gia tăng

đã tạo thư mục /tmp/myrpms

rpmpkgs/

rpmpkgs/httpd- 2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

rpmpkgs/nagios-4.4.6-4.el8. x86_64.rpm

rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

đã gửi 104 byte nhận được 3,49M byte 997,68K byte/giây

tổng kích thước là 3,74M tốc độ là 1,07

3. Lệnh Rsync qua SSH

Với Rsync, chúng ta có thể sử dụng SSH (Secure Shell) để truyền dữ liệu, sử dụng giao thức SSH trong khi truyền dữ liệu của chúng tôi, bạn có thể được đảm bảo rằng dữ liệu của bạn đang được truyền trong một kết nối an toàn với mã hóa để không ai có thể đọc dữ liệu của bạn trong khi nó đang được truyền qua dây trên Internet.

Ngoài ra, khi chúng tôi sử dụng Rsync, chúng tôi cần cung cấp người dùng/mật khẩu gốc để thực hiện tác vụ cụ thể đó, vì vậy việc sử dụng SSH tùy chọn sẽ gửi thông tin đăng nhập của bạn theo cách được mã hóa để mật khẩu được đảm bảo an toàn.

Sao chép tệp từ máy chủ từ xa sang máy chủ cục bộ có SSH

Để chỉ định giao thức với Rsync, bạn cần cung cấp tùy chọn “-e” cùng tên giao thức bạn muốn sử dụng. Ở đây trong ví dụ này, chúng tôi sẽ sử dụng “SSH” với tùy chọn “-e” và thực hiện truyền dữ liệu.

[root @ tecmint:~] # rsync-avzhe ssh root@192.168.0.141: /root/anaconda-ks.cfg/tmp

Mật khẩu của root@192.168.0.141: 

nhận danh sách tệp tăng dần

anaconda-ks.cfg

đã gửi 43 byte đã nhận 1,10K byte 325,43 byte/giây

tổng kích thước là 1,90K tốc độ là 1,67

Sao chép tệp từ máy chủ cục bộ sang máy chủ từ xa bằng SSH

[root @ tecmint: ~] # rsync-avzhe ssh backup.tar.gz root@192.168.0.141: /backups/

Mật khẩu của root@192.168.0.141: 

gửi danh sách tệp gia tăng

đã tạo thư mục/sao lưu

backup.tar.gz

đã gửi 224,59K byte nhận được 66 byte 64,19K byte/giây

tổng kích thước là 224.40K tốc độ tăng là 1,00

4. Hiển thị tiến trình trong khi truyền dữ liệu bằng lệnh Rsync

Để hiển thị tiến trình trong khi chuyển dữ liệu từ máy này sang máy khác, chúng ta có thể sử dụng tùy chọn '–progress'. Nó hiển thị các tệp và thời gian còn lại để hoàn tất quá trình chuyển.

Mật khẩu của [root@tecmint:/] # rsync -avzhe ssh --progress/root/rpmpkgs root@192.168.0.141: /root/rpmpkgs

root@192.168.0.141: 

gửi danh sách tệp tăng dần

rpmpkgs/

rpmpkgs/httpd-2.4. 37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

          1.47M 100% 31,80MB/s 0:00:00 (xfr # 1, to-chk = 3/5)

rpmpkgs/mod_ssl-2.4.37-40 .module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm

        138.01K 100% 2.69MB/s 0:00:00 (xfr # 2, to-chk = 2/5)

rpmpkgs/nagios-4.4.6-4.el8. x86_64.rpm

          2,01M 100% 18,45MB/s 0:00:00 (xfr # 3, to-chk = 1/5)

rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

        120,48K 100% 1,04MB/s 0:00:00 (xfr # 4, to-chk = 0/5)

đã gửi 3,74M byte đã nhận 96 byte 1,50M byte/giây

tổng kích thước là 3,74M tốc độ là 1,00

5. Sử dụng tùy chọn -include và -exclude

Hai tùy chọn này cho phép bao gồm và loại trừ các tệp bằng cách chỉ định các tham số. Với tùy chọn này giúp chúng tôi chỉ định các tệp hoặc thư mục mà bạn muốn đưa vào đồng bộ hóa của mình và loại trừ các tệp và thư mục mà bạn không muốn chuyển.

Ở đây trong ví dụ này, lệnh Rsync sẽ chỉ bao gồm các tệp và thư mục bắt đầu bằng 'R' và loại trừ tất cả các tệp và thư mục khác.

[root@tecmint: /]# rsync -avze ssh --bao gồm mật khẩu của 'R *' --exclude '*' root@192.168.0.141: /var/lib/rpm/ /root/rpm

root@192.168.0.141 : 

nhận danh sách tệp gia tăng

được tạo thư mục / root / rpm

./

Tên yêu cầu

đã gửi 61 byte nhận được 273.074 byte 60.696,67 byte/giây

tổng kích thước là 761.856 tốc độ tăng là 2,79

6. Sử dụng tùy chọn -delete

Nếu tệp hoặc thư mục không tồn tại tại nguồn, nhưng đã tồn tại ở đích, bạn có thể muốn xóa tệp/thư mục hiện có đó tại đích trong khi đồng bộ hóa.

Chúng ta có thể sử dụng tùy chọn –delete để xóa các tệp không có trong thư mục nguồn.

Nguồn và đích được đồng bộ hóa. Bây giờ, hãy tạo một tệp test.txt mới tại đích.

[root @ tecmint: ~] # cd/root/rpm/

[root @ tecmint: ~ /rpm]# touch test.txt

[root @ tecmint: ~ /rpm]# rsync -avz --delete root@192.168.0.151: /var/lib/rpm/ /root/rpm/

root@192.168.0.151's mật khẩu: 

nhận danh sách tập tin incremental

xóa test.txt

./

.dbenv.lock

.rpm.lock

Basenames

Conflictname

Dirnames

Enhancename

Filetriggername

Nhóm

Installtid

Tên

Obsoletename

Trọn gói

Providename

Sha1header Sigmd5 Tên gợi

ý

Tên

bổ sung

Transfiletriggername Tên

kích hoạt

__db.001

__db.002

__db.003

đã gửi 445 byte nhận được 18,543,954 byte 2,472,586,53 byte/giây

Tổng kích thước là 71,151,616 tốc độ là 3,84

Mục tiêu có tệp mới được gọi là test.txt, khi đồng bộ hóa với nguồn với tùy chọn –delete, nó đã loại bỏ tệp test.txt.

7. Đặt kích thước tối đa của tệp được truyền đi

Bạn có thể chỉ định kích thước tối đa của tệp sẽ được truyền hoặc đồng bộ hóa. Bạn có thể làm điều đó với tùy chọn “–max-size”. Ở đây trong ví dụ này, kích thước tệp tối đa là 200k, vì vậy lệnh này sẽ chỉ chuyển những tệp bằng hoặc nhỏ hơn 200k.

[root@tecmint:~] Mật khẩu của # rsync -avzhe ssh --max-size = '200k'/var/lib/rpm/ root@192.168.0.151: /root/tmprpm

root@192.168.0.151: 

gửi tệp tăng dần danh sách

đã tạo thư mục /root/tmprpm

./

.dbenv.lock

.rpm.lock

Conflictname

Tên nâng cao

Filetriggername

Group

Installtid

Name

Obsoletename

Recommendname

Requestname

Sha1header

Sigmd5

Gợi ý Tên

bổ sung

Transfiletriggername

Triggername

__db.002

gửi 129,52K byte nhận được 396 byte 28,87K byte/giây

tổng kích thước là Tốc độ 71,15M là 547,66

8. Tự động xóa tệp nguồn sau khi chuyển thành công

Bây giờ, giả sử bạn có máy chủ web chính và máy chủ sao lưu dữ liệu, bạn đã tạo bản sao lưu hàng ngày và đồng bộ hóa nó với máy chủ sao lưu của mình, bây giờ bạn không muốn giữ lại bản sao lưu cục bộ đó trong máy chủ web của bạn.

Vì vậy, bạn sẽ đợi quá trình chuyển hoàn tất và sau đó xóa tệp sao lưu cục bộ đó theo cách thủ công sao? Dĩ nhiên là không. Việc xóa tự động này có thể được thực hiện bằng cách sử dụng tùy chọn '–remove-source-files'.

[root@ tecmint:~]# rsync --remove-source-files -zvh backup.tar.gz root@192.168.0.151: /tmp/backups/

Mật khẩu của root@192.168.0.151: 

backup.tar.gz

đã gửi 795 byte nhận được 2,33K byte 894,29 byte/giây

tổng kích thước là 267,30K tốc độ là 85,40

[root@ tecmint:~] # ls -l backup.tar.gz

ls: không thể truy cập 'backup.tar.gz': Không có tệp hoặc thư mục nào như vậy

9. Thực hiện Dry Run với lệnh Rsync

Nếu bạn là người mới sử dụng Rsync và không biết chính xác lệnh của bạn sẽ làm gì. Rsync thực sự có thể làm rối tung mọi thứ trong thư mục đích của bạn và sau đó hoàn tác có thể là một công việc không mấy thú vị.

Việc sử dụng tùy chọn này sẽ không thực hiện bất kỳ thay đổi nào đối với tệp và hiển thị đầu ra của lệnh, nếu đầu ra hiển thị chính xác như bạn muốn thì bạn có thể xóa tùy chọn '–dry-run' khỏi lệnh của mình và chạy trên thiết bị đầu cuối.

[root@ tecmint:~]# rsync --dry-run --remove-source-files -zvh backup.tar.gz root@192.168.0.151: /tmp/backups/

Mật khẩu của root@192.168.0.151: 

backup.tar.gz

gửi 50 byte nhận được 19 byte 19,71 byte/giây

tổng kích thước là 267,30K tốc độ là 3,873,97 (DRY RUN)

10. Rsync đặt giới hạn băng thông và truyền tệp

Bạn có thể đặt giới hạn băng thông trong khi truyền dữ liệu từ máy này sang máy khác bằng sự trợ giúp của tùy chọn ”–bwlimit”. Tùy chọn này giúp chúng tôi giới hạn I/O. băng thông

[root@tecmint] Mật khẩu của # rsync --bwlimit = 100 -avzhe ssh/var/lib/rpm/ root@192.168.0.151: /root/tmprpm/

root@192.168.0.151:

gửi danh sách tệp gia tăng

đã nhận được 324 byte 12 byte 61,09 byte/giây

tổng kích thước là 38,08M tốc độ là 113347,05

Ngoài ra, theo mặc định Rsync chỉ đồng bộ hóa các khối và byte đã thay đổi, nếu bạn muốn đồng bộ toàn bộ tệp một cách rõ ràng thì bạn sử dụng tùy chọn -W với nó.

[root@tecmint]# rsync -zvhW backup.tar/tmp/backups/backup.tar

backup.tar

đã gửi 14,71M byte nhận được 31 byte 3,27M byte/giây

tổng kích thước là 16,18M tốc độ là 1,10

Kết luận

Trên đây là toàn bộ kiến thức về lệnh Rsync tính đến thời điểm hiện tại, bạn có thể xem trang của các bên khác để có thêm cái nhìn rộng hơn. Hãy kết nối với Tecmint để có nhiều hướng dẫn thú vị và hấp dẫn hơn trong thời gian sắp tới. Hãy để lại ý kiến và đề xuất của bạn dưới phần bình luận nhé.

+ Fanpage: https://www.facebook.com/nhanhoacom

+ Chỉ đường: https://g.page/nhanhoacom

+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html

————————————————————

CÔNG TY TNHH PHẦN MỀM NHÂN HÒA

https://nhanhoa.com

Hotline: 1900 6680

Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội

Tel: (024) 7308 6680 – Email: sales@nhanhoa.com

Chi nhánh TP. Hồ Chí Minh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM

Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com

Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Tel: 0915221384 – Email: contact@nhanhoa.com

Bài viết liên quan
20/11/2024
Các fan cứng của Nhân Hòa đã biết Chương trình Black Friday 2024 sẽ có mức ưu đãi khủng là bao nhiêu % và áp dụng cho những...
19/11/2024
Đừng để website của bạn bị "tắt đèn" vì hết hạn tên miền! Hãy chủ động gia hạn tên miền để đảm bảo sự liên...
16/11/2024
Không phải bàn cãi việc WordPress đang là một trong những nền tảng hàng đầu trong việc xây dựng website hiện nay. Và giải...
Chuyên nghiệp và tận tình
Hỗ Trợ Trực Tuyến 24/7
Đội ngũ chuyên gia giúp xử lý vấn đề kỹ thuật để website của bạn luôn hoạt động tốt và chạy nhanh. Bất kỳ lúc nào.
Kết nối với Nhân Hoà

Map Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Quận Đống Đa, Thành Phố Hà Nội

Phone Điện thoại: 1900 6680 - (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map 927/1 CMT8, Phường 7, Quận Tân Bình, Thành phố Hồ Chí Minh

Phone Điện thoại: 1900 6680 - (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Phone Điện thoại: 1900 6680 - (024) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Kết nối với Nhân Hoà
Gọi lại cho tôi
Gọi miễn phí
Gọi miễn phí
×
Thông báo

Đăng nhập thành công!