Làm thế nào để rsync biết tập tin nào để chuyển?


5

Đây chỉ là một câu hỏi "Tôi cảm thấy tò mò". Khi đồng bộ hóa cục bộ (nghĩa là từ ổ đĩa này sang ổ đĩa khác trên cùng một máy chủ), làm thế nào để rsync biết tập tin nào không đáng để truyền? Tôi đoán nó không làm một so sánh tập tin đầy đủ (vì điều đó sẽ quá đắt). Có phải nó chỉ làm kiểm tra đơn giản, như:

  • Kích thước tập tin
  • thời gian sửa đổi

Nếu vậy, tôi đoán sẽ dễ dàng đánh lừa rsync bằng cách thay đổi nội dung của tệp, giữ nguyên kích thước và đặt lại thời gian sửa đổi (nếu có thể).

Câu trả lời:


3

Đây là quan niệm sai lầm phổ biến - chuyển delta với rsync. rsyncđược thiết kế để làm bản sao nhanh nhất, không cần thiết một bản sao delta. Và để làm bản sao delta bạn cần làm tổng kiểm tra. Bây giờ, 'rsync' sẽ KHÔNG kiểm tra tệp nào sẽ truyền nhưng tệp nào có thể bị bỏ qua. Thông thường sẽ kiểm tra kích thước / mtime của người gửi và so sánh với kết thúc nhận.

Với rsyncbạn có một tùy chọn để thực hiện kiểm tra trên mỗi tệp (tôi nghĩ rằng đó là --checksum). Tất nhiên điều này sẽ chậm ...


0

Rsync không làm 'gia tăng', nó giống như 'vi sai'. nó không chuyển các thay đổi (giả sử một số kiến ​​thức về lần chạy trước), nó chuyển các khác biệt (bằng cách so sánh nguồn với các tệp đích)

  • đầu tiên kiểm tra kích thước tệp, ngày tạo / sửa đổi, cờ ... nếu tất cả đều giống hệt nhau, bỏ qua tệp.
  • nếu không có tệp nào có tên đó trên mục tiêu, chỉ cần sao chép toàn bộ tệp.
  • nếu có một tệp trên mục tiêu, nó sẽ tính toán tổng cho mỗi 2KB của tệp và chuyển đến người gửi.

để biết thêm thông tin, vui lòng xem trên các trang của Rupync Man.

https://linux.die.net/man/1/rsync

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.