Sự khác biệt chính giữa các công cụ này là cách chúng sao chép các tập tin.
scpvề cơ bản đọc tệp nguồn và ghi nó đến đích. Nó thực hiện một bản sao tuyến tính đơn giản, cục bộ hoặc qua mạng.
rsynccũng sao chép các tập tin cục bộ hoặc qua mạng. Nhưng nó sử dụng một thuật toán chuyển delta đặc biệt và một vài tối ưu hóa để làm cho hoạt động nhanh hơn rất nhiều. Hãy xem xét cuộc gọi.
rsync A host:B
rsyncsẽ kiểm tra kích thước tệp và dấu thời gian sửa đổi của cả A và B và bỏ qua mọi xử lý tiếp theo nếu chúng khớp.
Nếu tệp đích B đã tồn tại, thuật toán chuyển delta sẽ đảm bảo chỉ có sự khác biệt giữa A và B được gửi qua dây.
rsyncsẽ ghi dữ liệu vào một tập tin tạm thời T , và sau đó thay thế file đích B với T để thực hiện cập nhật cái nhìn "nguyên tử" để quá trình mà có thể được sử dụng B .
Một sự khác biệt khác giữa họ liên quan đến việc gọi. rsynccó rất nhiều tùy chọn dòng lệnh, cho phép người dùng tinh chỉnh hành vi của nó. Nó hỗ trợ các quy tắc lọc phức tạp, chạy trong chế độ hàng loạt, chế độ daemon, v.v. scpchỉ có một vài công tắc.
Tóm lại, sử dụng scpcho các nhiệm vụ hàng ngày của bạn. Các lệnh mà bạn gõ một lần trong vỏ tương tác của bạn. Việc sử dụng đơn giản hơn và trong những trường hợp đó, việc rsynctối ưu hóa sẽ không giúp ích nhiều.
Đối với các nhiệm vụ định kỳ, như croncông việc, sử dụng rsync. Như đã đề cập, trên nhiều yêu cầu, nó sẽ tận dụng dữ liệu đã được chuyển, thực hiện rất nhanh và tiết kiệm tài nguyên. Nó là một công cụ tuyệt vời để giữ cho hai thư mục được đồng bộ hóa qua mạng.
Ngoài ra, khi xử lý các tệp lớn, sử dụng rsyncvới -Ptùy chọn. Nếu quá trình chuyển bị gián đoạn, bạn có thể tiếp tục chuyển đến nơi đã dừng bằng cách phát lại lệnh. Xem câu trả lời của Sid Kshatriya .