Theo hiểu biết của tôi, rsync trên SMB cố gắng xây dựng danh sách tệp mỗi lần trên nguồn / đích để kiểm tra bất kỳ thay đổi nào đã được sửa đổi trước khi bản sao được yêu cầu.
Tôi đang cố gắng tìm hiểu sự khác biệt bằng cách sử dụng rsync trên OSX so với SMB khi gắn bộ lưu trữ mạng và sử dụng rsync trên OSX qua SSH sang bộ lưu trữ gắn NFS trên Linux. Trong quá trình kiểm tra khi kết nối với bộ lưu trữ được gắn trên Linux, nó đã xác định các tệp mới / bị xóa ngay lập tức! Khi rsyncing qua SMB xây dựng một danh sách tập tin hoàn chỉnh và tạo một danh sách của mỗi thư mục trước khi bất kỳ bản sao nào diễn ra.
Đối với nhận thức của người dùng, danh sách tệp xây dựng này (với điều kiện họ có hàng trăm / nghìn thư mục) phải mất một thời gian để chạy qua từng thư mục. Khi rsync hoàn thành bản sao ban đầu, ở lần chạy thứ hai, nó cung cấp cho tôi thông tin gửi và kích thước, cực kỳ nhanh chóng.
Vấn đề xảy ra khi chúng tôi ngắt kết nối chia sẻ SMB. Nếu chúng tôi chạy rsync một lần nữa, nó sẽ tạo danh sách tệp và chạy qua mọi thư mục ngay cả khi không có gì để sao chép. Liên kết với bộ lưu trữ thông qua ssh doesn không hiển thị danh sách tệp xây dựng và thông báo ngay cho chúng tôi nếu các tệp đang sao chép, v.v.
Các lệnh chúng ta đã chơi xung quanh là; -
Trên smb rsync -uvaz --delete / nguồn / đích rsync -aHEXAx -v --delete --proceed --stats --timeout = 999 / nguồn / đích
Trên ssh / nfs rsync -nuvaz --delete / nguồn / root@nfsServer.domain.co.uk:
Có ý kiến gì không?