Thông thường, rsyncbỏ qua các tệp khi các tệp có kích thước và thời gian giống hệt nhau ở phía nguồn và đích. Đây là một heuristic thường là một ý tưởng tốt, vì nó ngăn không rsyncphải kiểm tra nội dung của các tệp rất giống nhau ở phía nguồn và đích.
--ignore-timesyêu rsynccầu tắt heuristic theo thời gian và kích thước tệp, và do đó chuyển vô điều kiện TẤT CẢ các tệp từ nguồn sang đích. rsyncsau đó sẽ tiến hành đọc mọi tệp ở phía nguồn, vì nó sẽ cần sử dụng thuật toán chuyển delta hoặc đơn giản là gửi toàn bộ tệp, tùy thuộc vào việc --whole-filetùy chọn có được chỉ định hay không.
--checksumcũng sửa đổi heuristic lần và kích thước tệp, nhưng ở đây nó bỏ qua thời gian và chỉ kiểm tra kích thước. Các tệp ở phía nguồn và đích khác nhau về kích thước được truyền đi, vì chúng rõ ràng là khác nhau. Các tệp có cùng kích thước được kiểm tra lại (với MD5 trong rsyncphiên bản 3.0.0+ hoặc với MD4 trong các phiên bản trước đó) và các tệp được tìm thấy có tổng tiền khác nhau cũng được chuyển.
Trong trường hợp các mặt nguồn và đích gần như giống nhau, --checksumsẽ dẫn đến hầu hết các tệp được kiểm tra ở cả hai phía. Điều này có thể mất nhiều thời gian, nhưng kết quả cuối cùng là dữ liệu tối thiểu nhất sẽ thực sự được truyền qua dây, đặc biệt là nếu thuật toán chuyển delta được sử dụng. Tất nhiên, đây chỉ là một chiến thắng nếu bạn có mạng rất chậm và / hoặc CPU rất nhanh.
--ignore-timesmặt khác, sẽ gửi thêm dữ liệu qua mạng và nó sẽ khiến tất cả các tệp nguồn được đọc, nhưng ít nhất nó sẽ không đặt thêm gánh nặng cho việc tính toán nhiều hàm băm mạnh về mật mã trên CPU nguồn và CPU đích. Tôi hy vọng tùy chọn này sẽ hoạt động tốt hơn so với --checksumkhi mạng của bạn nhanh và / hoặc CPU của bạn tương đối chậm.
Tôi nghĩ rằng tôi sẽ chỉ sử dụng --checksumhoặc --ignore-timesnếu tôi đang chuyển các tệp đến một nơi mà người ta nghi ngờ rằng nội dung của một số tệp bị hỏng, nhưng thời gian sửa đổi của chúng không bị thay đổi. Tôi thực sự không thể nghĩ ra bất kỳ lý do chính đáng nào khác để sử dụng một trong hai tùy chọn, mặc dù có thể có các trường hợp sử dụng khác.
--checksumhữu ích cùng với--itemize-changesviệc xác minh các bản sao lưu. Thỉnh thoảng các tập lệnh sao lưu của tôi chạy một so sánh đầy đủ theo cách này sau khi cập nhật hàng ngày / hàng tuần hiện tại hoàn tất. Tôi bị đánh rơi một email được đánh dấu khẩn cấp nếu--itemize-changesxuất ra bất cứ điều gì bất ngờ, vì vậy tôi biết có một vấn đề tiềm ẩn mà tôi nên xem xét.