Có thể định cấu hình Rsync để xác minh nội dung của tệp trước khi chúng được đồng bộ hóa hay không. Tôi đã nghe nói về tổng kiểm tra, nhưng tôi đã biết rằng tổng kiểm tra chỉ lấy mẫu. Tôi muốn chuyển một tập tin chỉ khi nó là nội dung được thay đổi và không dấu thời gian, là có một cách để làm điều đó với bất kỳ các chế độ rsync. Trong kịch bản của tôi, hãy nói tệp sample.text sẽ được tạo mỗi tuần và tôi muốn đồng bộ hóa nó với máy chủ từ xa chỉ khi nội dung của sample.text được thay đổi, vì nó được tạo mỗi tuần, dấu thời gian rõ ràng sẽ thay đổi. Nhưng tôi chỉ muốn chuyển đổi về thay đổi nội dung.Có thể rsync xác minh nội dung trước khi đồng bộ hóa
Trả lời
Có, bạn nên đọc hướng dẫn sử dụng.
$ man rsync | grep "\--checksum"
-c, --checksum skip based on checksum, not mod-time & size
Rsync khá phức tạp. Tôi khuyên bạn nên ôm ấp thời gian với trang người đàn ông và thử nghiệm với dữ liệu thử nghiệm trước khi sử dụng nó cho bất kỳ điều gì quan trọng từ xa.
Hầu hết thời gian, mọi người sử dụng rsync -ac source dest
.
$ man rsync | grep "\--archive"
-a, --archive archive mode; same as -rlptgoD (no -H)
Và đó -rlptgoD
rác có nghĩa là: recursive
, copy symlinks as symlinks
, preserve permissions
, preserve times
, preserve group
, preserve owner
, preserve device files (super-user only)
, preserve special files
, và skip based on checksum, not mod-time & size
Các -c
hoặc --checksum
thực sự là những gì bạn đang tìm kiếm, và giả thiết của bạn rằng nó chỉ mẫu mtime và kích thước là sai.
+ cho _cuddle thời gian với trang người đàn ông và thử nghiệm với dữ liệu thử nghiệm_ - Lời khuyên cực kỳ tốt –
Xem tùy chọn --checksum
trên trang người rsync.
Ngoài ra, tùy chọn --size-only
sẽ là lựa chọn nhanh hơn nếu bạn biết chắc chắn rằng thay đổi nội dung cũng có nghĩa là thay đổi kích thước.
Ví dụ:
#!/bin/bash
echo > diff.txt
rsync -rvcn --delete /source/ /destination/ > diff.txt
second_row=$(sed -n '2p' diff.txt)
if [ "$second_row" = "" ]; then
echo there was no change
else
echo there was change
fi
Bạn thực sự cần thêm một số giải thích về lý do mã này hoạt động - bạn cũng có thể thêm nhận xét trong chính mã đó - ở dạng hiện tại của nó không cung cấp bất kỳ lời giải thích nào có thể giúp phần còn lại của cộng đồng hiểu những gì bạn đã làm để giải quyết/trả lời câu hỏi. – ishmaelMakitla
Nếu không có thay đổi dòng thứ hai của diff.txt trong chế độ tiết của rsync trống, sed kiểm tra dòng thứ hai này. – oldbowman
- 1. rsync không đồng bộ hóa .htaccess tập tin
- 2. Linux đồng bộ hóa số đếm trước
- 3. Cách xác minh snapin trước khi thêm?
- 4. Ngăn vòng lặp đồng bộ hóa mạng khi đồng bộ hóa từ mạng trong Android ContentProvider
- 5. Xác định phạm vi đồng bộ hóa?
- 6. hoán đổi nguyên tử với CAS (sử dụng nội dung đồng bộ hóa gcc)
- 7. AndroidRuntimeException: requestFeature() phải được gọi trước khi thêm nội dung
- 8. Mẫu thiết kế đồng bộ hóa đồng bộ hóa tối ưu hóa
- 9. Thuật toán đồng bộ hóa
- 10. Javascript - đồng bộ hóa sau khi các cuộc gọi không đồng bộ
- 11. Lưu trữ nội dung UITextField trước khi xem pops
- 12. Thư viện đồng bộ hóa tệp .NET
- 13. đồng bộ hóa (this) vs đồng bộ hóa (MyClass.class)
- 14. Khi chạy lỗi đồng bộ hóa lại: Đã đồng bộ hóa do lỗi tìm nạp
- 15. Đồng bộ hóa IMAP
- 16. Mã hóa Rsync
- 17. Cách đồng bộ hóa chính xác thời gian giữa iPhone?
- 18. Xác nhận thứ tự đồng bộ hóa trong Java
- 19. Đồng bộ hóa khung với AVPlayer
- 20. Đồng bộ hóa thư mục S3/thùng
- 21. Bối rối về việc đồng bộ hóa nhiều bảng với bộ điều hợp đồng bộ và nhà cung cấp nội dung
- 22. Đồng bộ hóa cuộc gọi không đồng bộ trong C#
- 23. Nội dung loại bỏ nội dung có thể chỉnh sửa có thể chỉnh sửa
- 24. Trong Extjs4.1, cách thêm thông số bổ sung trước khi đồng bộ hóa một cửa hàng?
- 25. Lỗi nội bộ ứng dụng khách Heroku. Không thể xác minh chứng chỉ
- 26. Độ trễ UIWebView khi tải nội dung cục bộ
- 27. Điều gì có nghĩa là "đồng bộ hóa nhanh" không được đồng bộ hóa?
- 28. Bộ sưu tập được đồng bộ hóa
- 29. Làm thế nào để đồng bộ hóa cá thể EC2 của tôi khi tự động hóa
- 30. Phần không đồng bộ của bộ điều khiển xác minh mới của Apple có cần thiết không?
bạn đã thử man page của rsync? -c, --checksum Điều này thay đổi cách rsync kiểm tra xem các tệp đã được thay đổi và cần chuyển khoản hay chưa. Nếu không có tùy chọn này, rsync sử dụng "kiểm tra nhanh" (theo mặc định) sẽ kiểm tra kích thước và thời gian sửa đổi cuối cùng của mỗi tệp giữa người gửi và người nhận. –