Cách sử dụng rsync để sao chép tệp

How Use Rsync Copy Files



Rsync là một công cụ dòng lệnh trong Linux được sử dụng để sao chép tệp từ vị trí nguồn sang vị trí đích. Bạn có thể sao chép tệp, thư mục và toàn bộ hệ thống tệp và giữ đồng bộ tệp giữa các thư mục khác nhau. Nó không chỉ là sao chép các tập tin. Nó làm giảm lượng dữ liệu được gửi qua mạng bằng cách chỉ gửi các tệp mới hoặc được cập nhật. Đó là lý do tại sao nó được coi là một tiện ích tuyệt vời để sao chép và sao lưu tệp. Rsync cũng hỗ trợ sao chép tệp vào hệ thống từ xa qua SSH.

Trong bài viết này, chúng tôi sẽ giải thích cách sử dụng rsync để sao chép tệp với một số ví dụ thực tế. Chúng tôi cũng sẽ giải thích việc sử dụng rsync trong việc sao chép một tệp, nhiều tệp và thư mục sang cả hệ thống cục bộ và hệ thống từ xa. Chúng tôi sẽ giới thiệu cách sử dụng Rsync để:







  • Sao chép tệp / thư mục trong hệ thống cục bộ
  • Sao chép tệp / thư mục từ cục bộ sang hệ thống từ xa
  • Sao chép tệp / thư mục từ hệ thống từ xa vào cục bộ

Chúng tôi đã giải thích các lệnh và quy trình được đề cập trong bài viết này trên Ubuntu 20.04 LTS. Bạn sẽ cần Terminal dòng lệnh để sao chép tệp bằng rsync. Để mở ứng dụng Terminal dòng lệnh, hãy sử dụng phím tắt Ctrl + Alt + T.



Cài đặt Rsync

Rsync được cài đặt sẵn trong Ubuntu 20.04 LTS. Tuy nhiên, nếu nó vô tình bị xóa khỏi hệ thống, bạn có thể cài đặt nó như sau:



$sudođúng cáchTải vềrsync

Dưới đây là một số tùy chọn thường được sử dụng có thể được sử dụng với rsync:





–A: chế độ lưu trữ
–V: hiển thị chi tiết của quá trình sao chép
–P: hiển thị thanh tiến trình
–R: sao chép dữ liệu một cách đệ quy
–Z: nén dữ liệu
–Q: chặn đầu ra

Sao chép các tệp và thư mục cục bộ

Cú pháp chung của rsync là:



$rsync[Lựa chọn] [nguồn] [điểm đến]

Sao chép một tệp cục bộ

Nếu bạn muốn sao chép tệp từ vị trí này sang vị trí khác trong hệ thống của mình, bạn có thể thực hiện việc này bằng cách nhập rsync theo sau là tên tệp nguồn và thư mục đích.

Ví dụ: để sao chép một tệp duy nhất file1.txt từ vị trí hiện tại là Thư mục chính vào thư mục ~ / Documents, lệnh sẽ là:

$rsync/Trang Chủ/tin/file1.txt/Trang Chủ/tin/Các tài liệu

Lưu ý: Thay vì /home/tin/file1.txt, chúng ta cũng có thể nhập file1 vì chúng ta hiện đang làm việc trong thư mục chính. Ngoài ra, chúng ta có thể sử dụng ~ / Documents thay vì đề cập đến đường dẫn đầy đủ là / home / tin / Documents.

Sao chép nhiều tệp cục bộ

Nếu bạn muốn sao chép nhiều tệp cùng một lúc từ vị trí này sang vị trí khác trong hệ thống của mình, bạn có thể thực hiện việc này bằng cách nhập rsync theo sau là tên tệp nguồn và thư mục đích.

Ví dụ: để sao chép các tệp file2.txt và file3.txt từ thư mục Home vào thư mục ~ / Documents, lệnh sẽ là:

$rsync/Trang Chủ/tin/file2.txt/Trang Chủ/tin/file3.txt/Trang Chủ/tin/Các tài liệu

Để sao chép tất cả các tệp có cùng một phần mở rộng, bạn có thể sử dụng biểu tượng dấu hoa thị (*) thay vì chỉ định riêng từng tên tệp. Ví dụ: để sao chép tất cả các tệp từ Thư mục chính kết thúc bằng phần mở rộng .zip vào thư mục ~ / Documents, chúng tôi sẽ sử dụng:

$rsync/Trang Chủ/tin/ *.zip ~/Các tài liệu

Sao chép thư mục cục bộ

Nếu bạn muốn sao chép một thư mục với thư mục con của nó và tất cả nội dung từ vị trí này sang vị trí khác trong hệ thống của mình, bạn có thể làm như vậy bằng cách nhập rsync theo sau là thư mục nguồn và đích.

Ví dụ, để sao chép thư mục mẫu vào thư mục test / trong Thư mục chính, lệnh sẽ là:

$rsync-của /Trang Chủ/tin/mẫu vật/Trang Chủ/tin/kiểm tra

Lưu ý: Chỉ định / sau thư mục nguồn chỉ sao chép nội dung của thư mục. Nếu chúng ta không chỉ định / sau thư mục nguồn, thì thư mục nguồn cũng sẽ được sao chép vào thư mục đích.

Giống như trong đầu ra sau đây, bạn có thể thấy rằng mẫu thư mục nguồn của chúng tôi cũng được sao chép vào thư mục đích (vì chúng tôi đã sử dụng mẫu thay vì mẫu / làm thư mục nguồn).

Rsync hỗ trợ truyền tăng dần như bạn có thể thấy trong đầu ra ở trên rằng nó chỉ chuyển các tệp mới hoặc được cập nhật.

Sao chép tệp dựa trên kích thước tối đa

Trong khi sao chép, chúng tôi cũng có thể chỉ định kích thước tối đa của tệp có thể được sao chép với tùy chọn –max-size. Ví dụ, để sao chép các tệp không lớn hơn 2000k từ ~ / Downloads vào thư mục ~ / Documents, lệnh sẽ là:

$rsync-đến - kích thước tối đa= 2000k/Trang Chủ/tin/Tải xuống/ * /Trang Chủ/tin/Các tài liệu

Lệnh này sẽ sao chép tất cả các tệp từ ~ / Downloads vào thư mục ~ / Documents ngoại trừ những tệp lớn hơn 2000k.

Sao chép tệp dựa trên kích thước tối thiểu

Tương tự, chúng ta cũng có thể chỉ định kích thước tối thiểu của tệp có thể được sao chép với tùy chọn –min-size. Ví dụ: để sao chép các tệp không nhỏ hơn 5M từ ~ / Downloads vào ~ / Documents, lệnh sẽ là:

$rsync-đến - kích thước tối thiểu= 5 triệu/Trang Chủ/tin/Tải xuống/ /Trang Chủ/tin/Các tài liệu

Lệnh này sẽ sao chép tất cả các tệp từ ~ / Downloads vào thư mục ~ / Documents ngoại trừ những tệp nhỏ hơn 5M.

Loại trừ các tệp

Trong khi sao chép tệp từ thư mục này sang thư mục khác, bạn có thể loại trừ một số tệp bằng cách sử dụng tùy chọn —exclude, theo sau là tên tệp hoặc phần mở rộng của loại tệp.

Ví dụ: để loại trừ tất cả các tệp .zip trong khi sao chép tệp từ ~ / Downloads vào thư mục ~ / Documents, lệnh sẽ là:

$rsync-đến --loại trừ='* .zip' /Trang Chủ/tin/Tải xuống/ /Trang Chủ/tin/Các tài liệu

Sao chép tệp và thư mục từ xa

Với Rsync, bạn có thể sao chép một tệp, nhiều tệp và thư mục vào một hệ thống từ xa. Để sao chép tệp và thư mục từ xa, bạn sẽ yêu cầu:

  • Rsync được cài đặt trên cả hệ thống cục bộ và từ xa
  • Truy cập SSH vào hệ thống từ xa
  • Mật khẩu người dùng từ xa

Trước khi sao chép tệp bằng rsync, hãy đảm bảo rằng bạn có thể truy cập hệ thống từ xa qua SSH:

$sshremote_user@remote_ip


Cú pháp chung để sao chép tệp và thư mục vào hệ thống từ xa bằng rsync:

$rsync[Lựa chọn] [nguồn] [người dùng từ xa@remoteip: điểm đến]

Ví dụ: để sao chép một tệp file.txt từ ~ / Downloads vào thư mục hệ thống từ xa ~ / Documents, lệnh sẽ là:

$rsync-v~/Tải xuống/file1.txt umara@192.168.72.164:~/Các tài liệu

Tương tự, để sao chép thư mục ~ / Downloads / files trong hệ thống cục bộ với thư mục con của nó và tất cả nội dung vào thư mục ~ / Downloads / samples tại hệ thống từ xa:

$rsync-rv~/Tải xuống/tập tin umra@192.168.72.164:~/Tải xuống/mẫu

Bạn cũng có thể sao chép các tệp và thư mục từ máy từ xa sang máy cục bộ của mình. Ví dụ: để sao chép file2.txt từ hệ thống từ xa sang màn hình hệ thống cục bộ:

$rsync-vumara@192.168.72.164:~/Tải xuống/file2.txt ~/Máy tính để bàn/

Tương tự, để sao chép một thư mục từ hệ thống từ xa sang hệ thống cục bộ

$rsync-rvumara@192.168.72.164:~/Tải xuống/mẫu ~/Máy tính để bàn/kiểm tra

Bạn cũng có thể sử dụng tất cả các tùy chọn như –max-size, –min-size, –exclude và các tùy chọn khác trong khi sao chép tệp vào / từ hệ thống từ xa.

Rsync là một công cụ tuyệt vời để sao chép tệp từ nguồn đến đích hoặc cục bộ hoặc từ xa. Nó bao gồm một tập hợp lớn các tùy chọn cung cấp cho bạn sự linh hoạt và kiểm soát trong khi truyền tệp đến / từ hệ thống từ xa.