15 ví dụ Rsync

15 Vi Du Rsync



Chuyển tệp từ vị trí này sang vị trí khác là một nhiệm vụ rất phổ biến đối với người dùng Linux. Nhiều tùy chọn có sẵn trong Linux để thực hiện tác vụ này; “rsync” là một trong số đó. Hình thức đầy đủ của “rsync” là “Đồng bộ hóa từ xa”. Nó là một công cụ đồng bộ hóa rất hữu ích để sao chép các tệp và thư mục từ hệ thống này sang hệ thống khác cục bộ hoặc từ xa. Nó có nhiều lợi ích hơn các công cụ đồng bộ hóa khác. Công cụ này được cài đặt trong Linux theo mặc định. Vì vậy, người dùng không cần phải cài đặt nó. Ưu điểm và cách sử dụng lệnh “rsync” được trình bày trong hướng dẫn này bằng 15 ví dụ đơn giản.

Ưu điểm của lệnh “Rsync”

  1. Nó nhanh hơn các công cụ khác vì nó chỉ sao chép những tệp đó từ vị trí nguồn sang vị trí đích đã được sửa đổi hoặc không tồn tại ở vị trí đích.
  2. Nó hỗ trợ chuyển giao không đầy đủ.
  3. Nó yêu cầu ít băng thông hơn vì nó nén dữ liệu trong quá trình truyền.
  4. Nó làm giảm chi phí truyền dẫn vì dữ liệu ít quan trọng hơn có thể được truyền đi mà không cần mã hóa.

cú pháp

Cú pháp của lệnh “rsync” được đưa ra như sau:

rsync [Tùy chọn] Đích nguồn

Ở đây, đường dẫn nguồn và đích có thể là cục bộ hoặc từ xa. Các loại tùy chọn khác nhau có thể được sử dụng với lệnh này cho các mục đích khác nhau.







Các tùy chọn hữu ích của lệnh “Rsync”

Một số tùy chọn thường được sử dụng của lệnh “rsync” được giải thích như sau:



Lựa chọn Mục đích
-Với Nó được sử dụng để nén dữ liệu trong quá trình truyền.
-r Nó được sử dụng để đồng bộ hóa dữ liệu theo cách đệ quy mà không giữ bất kỳ quyền nào đối với tệp.
-Một Nó được sử dụng để đồng bộ hóa dữ liệu theo cách đệ quy bằng cách giữ tất cả các quyền đối với tệp.
-b Nó được sử dụng để sao lưu dữ liệu trong quá trình truyền.
-TRONG Nó được sử dụng để hiển thị đầu ra ở định dạng dài dòng.
-P Nó được sử dụng để hiển thị tiến trình chuyển giao.
-N Nó được sử dụng để kiểm tra xem đồng bộ hóa có hoạt động hay không trước khi chuyển các tệp hoặc thư mục.

Danh sách 15 ví dụ “Rsync”

  1. Chuyển một tệp và thư mục cục bộ
  2. Chuyển nhiều tệp và thư mục cục bộ
  3. Chuyển một tập tin và thư mục từ xa
  4. Truyền nhiều tệp và thư mục từ xa
  5. Hiển thị tiến trình chuyển giao
  6. Nén dữ liệu trong quá trình truyền
  7. Chuyển với giới hạn băng thông
  8. Chuyển tập tin và thư mục theo cách đệ quy
  9. Chuyển với giới hạn kích thước tối thiểu
  10. Chuyển với giới hạn kích thước tối đa
  11. Chuyển các tệp thuộc loại cụ thể
  12. Hiển thị sự khác biệt giữa tệp nguồn và tệp đích
  13. Bao gồm hoặc loại trừ các tệp trong quá trình truyền
  14. Đồng bộ hóa dữ liệu ở chế độ khô
  15. Xóa các tệp và thư mục nguồn sau khi chuyển

Chuyển một tệp và thư mục cục bộ

Chạy lệnh “ls” để hiển thị danh sách các tệp và thư mục của vị trí hiện tại. Tiếp theo, hãy chạy lệnh “rsync” để chuyển tệp “employees.txt” sang tệp “employees_copy.txt” cục bộ. Chạy lại lệnh “ls” để kiểm tra xem tệp có được chuyển đúng cách hay không.



$ ls
$ rsync employee.txt employee_copy.txt
$ ls

Đầu ra sau đây cho thấy tệp “employee.txt” được chuyển thành công:





Giả sử nội dung của thư mục tạm thời cần chuyển sang thư mục tempdir nơi tồn tại tệp “courses.txt” trên cả hai thư mục. Chạy lệnh “ls temp” để kiểm tra nội dung của thư mục tạm thời. Tiếp theo, chạy lệnh “cat temp/courses.txt” để kiểm tra nội dung của tệp này. Tiếp theo, chạy lệnh “ls tempdir” để kiểm tra nội dung của thư mục tempdir. Tiếp theo, chạy lệnh “cat tempdir/courses.txt” để kiểm tra nội dung của tệp này.



$ ls tạm thời
$ mèo tạm thời/các khóa học.txt
$ lstempdir
$ mèo tempdir/courses.txt

Đầu ra cho thấy nội dung của tệp “courses.txt” của thư mục temp và tempdir hơi khác nhau và tệp “courses.txt” của thư mục tạm thời chứa nhiều dữ liệu hơn tệp “courses.txt” của thư mục tempdir .

Chạy lệnh sau để chuyển nội dung của thư mục tạm sang thư mục tempdir và kiểm tra nội dung của tệp “courses.txt” của thư mục tempdir để xác nhận rằng tệp đã được cập nhật đúng cách hay chưa:

$ rsync -a tạm thời/tempdir/
$ lstempdir
$ mèo tempdir/courses.txt

Đầu ra sau đây cho thấy rằng nội dung của thư mục tạm thời được chuyển đúng cách vào thư mục tempdir và nội dung của tệp “courses.txt” của thư mục tempdir được cập nhật đúng cách:

Chuyển nhiều tệp và thư mục cục bộ

Lệnh “rsync” có thể được sử dụng để truyền cục bộ nhiều tệp và thư mục. Chạy lệnh sau để chuyển các tệp “ping1.bash” và “ping2.bash” sang thư mục tempdir và kiểm tra nội dung của thư mục tempdir sau khi chuyển. Tùy chọn -v được sử dụng với lệnh “rsync” để hiển thị đầu ra ở định dạng dài dòng:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Đầu ra sau đây cho thấy rằng nhiều tệp được chuyển đúng cách vào thư mục tempdir:

Chạy các lệnh sau để kiểm tra nội dung của các thư mục temp, tempdir và test và chuyển nội dung của thư mục test và tempdir sang thư mục tạm thời:

$ ls tạm thời
$ lstempdir
kiểm tra $ ls
$ rsync -av test/ tempdir/ temp/
$ ls tạm thời

Đầu ra cho thấy rằng nội dung của các thư mục thử nghiệm và tempdir được chuyển thành công vào thư mục tạm thời. Các tệp “customers.csv”, “ping1.bash” và “ping2.bash” được thêm dưới dạng tệp mới vào thư mục tạm thời:

Chuyển một tập tin và thư mục từ xa

Bạn phải cài đặt và định cấu hình máy chủ SSH ở vị trí từ xa để truyền tệp và thư mục từ xa. Bạn có thể kiểm tra điều này hướng dẫn để cấu hình máy chủ SSH.

Chạy lệnh sau để kiểm tra kích thước của tệp “courses.txt” của vị trí hiện tại:

ls -la các khóa học.txt

Đầu ra cho thấy kích thước của tệp “courses.txt” là 65 byte:

Chạy lệnh sau để chuyển “courses.txt” sang /home/ubuntu/các khóa học/ thư mục của vị trí từ xa, ubuntu@192.168.0.101. Bạn phải cung cấp mật khẩu gốc của máy từ xa trước khi truyền tệp:

rsync -vcourses.txt  ubuntu@192.168.0.101:/home/ubuntu/courses/

Đầu ra sau đây cho thấy tệp “courses.txt” được chuyển vào máy từ xa đúng cách và kích thước tệp là 65 byte:

Chạy lệnh sau để chuyển thư mục tạm thời sang thư mục /home/ubuntu/các khóa học/ thư mục của vị trí từ xa, ubuntu@192.168.0.101. Bạn phải cung cấp mật khẩu gốc của máy từ xa trước khi truyền tệp như lệnh trước.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/cifts/

Đầu ra sau đây cho thấy nội dung của thư mục tạm thời được chuyển vào máy từ xa đúng cách:

Truyền nhiều tệp và thư mục từ xa

Lệnh “rsync” sau đây chuyển các tệp “customers.csv” và “department.json” sang /home/Ubuntu/tệp/ thư mục của vị trí từ xa, ubuntu@192.168.0.101.

rsync -av customers.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Đầu ra sau đây cho thấy nhiều tệp được chuyển thành công đến vị trí từ xa:

Lệnh “rsync” sau đây chuyển nội dung của các thư mục tạm thời và kiểm tra cũng như tệp “department.json” sang /home/Ubuntu/tệp/ thư mục của vị trí từ xa, ubuntu@192.168.0.101.

rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Đầu ra sau đây cho thấy nội dung của nhiều thư mục được chuyển thành công vào vị trí từ xa:

Hiển thị tiến trình chuyển giao

Chạy lệnh “rsync” với tùy chọn –progress để chuyển nội dung của thư mục tempdir sang thư mục temp_copy với thông tin tiến trình.

rsync -a tempdir/ temp_copy --progress

Đầu ra sau đây cho thấy thư mục temp_copy được tạo cục bộ và nội dung của thư mục tempdir được chuyển thành công vào thư mục temp_copy:

Nén dữ liệu trong quá trình truyền

Chạy lệnh “rsync” sau với tùy chọn –z để nén và chuyển thư mục tempdir sang thư mục kiểm tra cục bộ:

rsync -za tempdir/kiểm tra/

Đầu ra sau đây cho thấy rằng thư mục nén được chuyển cục bộ thành công:

Chuyển với giới hạn băng thông

Chạy lệnh “rsync” sau với tùy chọn –bwlimit với giá trị 100 để chuyển cục bộ tệp /etc/passwd sang thư mục tạm thời:

rsync -v --bwlimit=100 vv/passwd temp/

Đầu ra sau đây cho thấy tệp passwd được chuyển thành công:

Truyền tệp và thư mục theo cách đệ quy

Chạy lệnh “rsync” sau với tùy chọn –rv để chuyển thư mục test vào thư mục test_bak cục bộ:

rsync -rv kiểm tra/ test_bak/

Đầu ra sau đây cho thấy thư mục test được chuyển thành công vào thư mục test_bak:

Chuyển với giới hạn kích thước tối thiểu

Có thể giới hạn việc truyền tệp và thư mục bằng lệnh “rsync” bằng cách sử dụng tùy chọn –min-size để đặt giới hạn kích thước tối thiểu cho việc truyền tệp và thư mục. Chạy lệnh “ls -la tempdir” sau để kiểm tra kích thước của từng tệp và thư mục của thư mục này. Tiếp theo, chạy lệnh “rsync” để chuyển nội dung của thư mục tempdir sang thư mục tempdir_bak với giới hạn kích thước tối thiểu.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

Đầu ra sau đây cho thấy có hai tệp tồn tại trong thư mục tempdir phù hợp với kích thước tối thiểu. Đây là “ping1.bash” (248 byte) và “test.txt” (34504 byte). Các tệp này được chuyển vào thư mục tempdir_bak và các tệp khác của thư mục tempdir bị bỏ qua:

Chuyển với giới hạn kích thước tối đa

Có thể giới hạn việc truyền các tệp và thư mục bằng lệnh “rsync” bằng cách sử dụng tùy chọn –max-size để đặt giới hạn kích thước tối đa của các tệp và thư mục đang truyền. Chạy lệnh “ls -la temp” sau đây để kiểm tra kích thước của từng tệp và thư mục của thư mục này. Tiếp theo, chạy lệnh “rsync” để chuyển nội dung của thư mục tạm thời sang thư mục temp_bak với giới hạn kích thước tối đa.

ls -la tạm thời
rsync --max-size='250B' temp/ temp_bak/

Đầu ra sau đây cho thấy có bốn tệp tồn tại trong thư mục tạm thời phù hợp với giới hạn kích thước tối đa. Đó là “courses.txt” (65 byte), “employees.csv” (361 byte), “ping1.bash” (248 byte) và “ping2.bash” (244 byte). Các tệp này được chuyển vào thư mục temp_bak và các tệp khác trong thư mục tạm thời bị bỏ qua:

Chuyển các tệp thuộc loại cụ thể

Loại tệp sẽ truyền có thể được đặt bằng cách đề cập đến phần mở rộng của tệp trong lệnh “rsync”. Chạy lệnh “rsync” sau để chuyển tất cả các tệp văn bản của thư mục tạm thời sang thư mục mydir. Ở đây, phần mở rộng của tệp văn bản được biểu thị bằng “*.txt”:

rsync -v temp/*.txt mydir/

Đầu ra sau đây cho thấy hai tệp văn bản, “courses.txt” và “test.txt”, được chuyển đến thư mục mydir và các tệp khác của thư mục tạm thời bị bỏ qua:

Hiển thị sự khác biệt giữa tệp nguồn và tệp đích

Khi các tệp hoặc thư mục được chuyển từ vị trí này sang vị trí khác cục bộ hoặc từ xa, cả hai vị trí có thể chứa các tệp hoặc thư mục giống nhau. Có thể kiểm tra sự khác biệt giữa nguồn và đích trong quá trình truyền bằng cách sử dụng tùy chọn -i với lệnh “rsync”. Chạy các lệnh “cat” sau để kiểm tra nội dung của tệp nguồn và tệp đích trước khi truyền. Tại đây, tệp “courses.txt” được chuyển vào thư mục tạm thời.

khóa học mèo.txt
mèo tạm thời/các khóa học.txt
rsync -avi các khóa học.txt tạm thời/

Đầu ra sau đây cho thấy tệp “courses.txt” của nguồn và đích hơi khác nhau. Đầu ra của lệnh “rsync” cho thấy sự khác biệt giữa các tệp:

Đồng bộ hóa dữ liệu ở chế độ khô

Nếu bạn muốn biết tập tin và thư mục nào được chuyển bằng lệnh “rsync” trước khi chuyển thực sự, tốt hơn là chạy lệnh “rsync” với tùy chọn –dry-run hoặc tùy chọn –n. Khi lệnh “rsync” được thực thi với tùy chọn này, nó sẽ kiểm tra tệp hoặc thư mục nào được sao chép từ thư mục nguồn sang thư mục đích nhưng giữ nguyên thư mục đích. Chạy tệp “ls –la department.json” để kiểm tra kích thước của tệp. Tiếp theo, chạy lệnh “rsync” với chế độ –dry-run để kiểm tra việc chuyển “department.json” sang thư mục tạm thời.

ls -la Department.json
rsync -v --dry-run department.json temp/

Đầu ra sau đây cho thấy kích thước của tệp “department.json” là 1172 byte. Kích thước tệp hiển thị 1172 byte sau khi thực hiện lệnh “rsync” với tùy chọn –dry-run:

Bao gồm hoặc loại trừ các tệp trong quá trình truyền

Bạn có thể lọc loại tệp tại thời điểm truyền từ vị trí nguồn sang vị trí đích bằng các tùy chọn –include và –exclude. Tùy chọn “optionsinclude” được sử dụng để xác định phần mở rộng của các tệp đó sẽ được chuyển từ nguồn đến đích. Tùy chọn –exclude được sử dụng để xác định phần mở rộng của các tệp đó sẽ không được chuyển từ nguồn đến đích.

Chạy thư mục “ls temp” sau để kiểm tra nội dung của thư mục tạm thời. Tiếp theo, chạy lệnh “rsync” với các tùy chọn –include và –exclude. Theo lệnh, tất cả các tệp CSV của thư mục tạm thời được chuyển sang thư mục tệp và tất cả các tệp văn bản của thư mục tạm thời sẽ bị bỏ qua tại thời điểm chuyển. Tiếp theo, chạy lệnh “ls files” để kiểm tra xem tệp nào được chuyển từ thư mục tạm thời sang thư mục tệp.

tạm thời
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
tập tin ls

Đầu ra sau đây cho thấy thư mục tạm thời chứa hai tệp CSV, hai tệp văn bản và hai tệp BASH. Thư mục tệp trống trước khi chuyển và hai tệp CSV và hai tệp BASH được chuyển:

Xóa các tệp và thư mục nguồn sau khi chuyển

Trong tất cả các lệnh “rsync” trước đó, các tệp và thư mục nguồn vẫn ở vị trí nguồn sau khi chuyển đến vị trí đích. Nhưng đôi khi, nó yêu cầu chuyển vĩnh viễn các tệp và thư mục đến vị trí đích. Tác vụ này có thể được thực hiện bằng cách sử dụng tùy chọn –remove-source-files với lệnh “rsync”. Chạy lệnh “ls” để kiểm tra tất cả các tệp và thư mục của vị trí hiện tại. Chạy lệnh “ls temp” để kiểm tra các tệp và thư mục của thư mục tạm thời. Tiếp theo, chạy lệnh “rsync” với tùy chọn –remove-source-files để xóa các tệp và thư mục của vị trí nguồn sau khi hoàn tất quá trình chuyển. Chạy lại lệnh “ls” để kiểm tra xem tệp nguồn có bị xóa khỏi vị trí nguồn hay không.

ls
tạm thời
rsync  employee.csv temp/ --remove-source-files
ls

Đầu ra sau đây cho thấy tệp “employees.csv” của vị trí hiện tại được chuyển sang thư mục tạm thời và tệp “employees.csv” bị xóa khỏi vị trí nguồn sau khi chuyển:

Phần kết luận

“rsync” là một công cụ rất hữu ích của Linux giúp nhiệm vụ truyền tệp và thư mục từ vị trí này sang vị trí khác dễ dàng hơn bằng cách sử dụng các tùy chọn khác nhau. Các phương pháp sử dụng lệnh “rsync” để truyền tệp và thư mục từ vị trí này sang vị trí khác bằng cách nén, đặt kích thước tệp và thư mục, đặt loại tệp, đặt giới hạn băng thông, v.v. được hiển thị trong 15 ví dụ đơn giản về hướng dẫn này. Hướng dẫn này giúp người dùng Linux biết cách sử dụng cơ bản của lệnh “rsync” trong Linux đúng cách.