scp
xác minh rằng nó đã sao chép tất cả dữ liệu được gửi bởi bên kia. Tính toàn vẹn của chuyển tiền được đảm bảo bởi giao thức kênh mật mã. Vì vậy, bạn không cần phải xác minh tính toàn vẹn sau khi chuyển. Điều đó sẽ là dư thừa và rất khó có thể bắt gặp bất kỳ lỗi phần cứng nào vì dữ liệu bạn so sánh có thể sẽ được đọc từ bộ đệm. Xác minh dữ liệu định kỳ có thể hữu ích, nhưng xác minh ngay sau khi chuyển là vô nghĩa.
Tuy nhiên, bạn cần đảm bảo rằng điều đó scp
không cho bạn biết rằng đã xảy ra sự cố. Cần có một thông báo lỗi, nhưng chỉ báo đáng tin cậy là scp
trả về mã thoát không khác nếu có sự cố.
Chính xác hơn, bạn biết rằng tệp đã được truyền chính xác nếu scp
trả về 0 (tức là mã trạng thái thành công). Kiểm tra trạng thái thoát là 0 là cần thiết khi bạn chạy bất kỳ lệnh nào. Nếu scp
trả về trạng thái lỗi hoặc nếu nó bị chết bởi tín hiệu hoặc nếu nó không bao giờ chết vì hệ thống gặp sự cố hoặc mất điện trong khi nó đang chạy, thì bạn không có gì đảm bảo. Cụ thể, vì scp
sao chép tệp trực tiếp vào tên cuối cùng của nó, điều này có nghĩa là bạn có thể kết thúc với một phần tệp trong trường hợp xảy ra sự cố hệ thống. Phần được sao chép được đảm bảo là chính xác nhưng tệp có thể bị cắt ngắn.
Để có độ tin cậy tốt hơn, hãy sử dụng rsync thay vì scp. Trừ khi được hướng dẫn khác, rsync ghi vào một tệp tạm thời và di chuyển nó vào vị trí sau khi hoàn thành. Do đó, nếu rsync trả về mã thành công, bạn biết tệp có mặt và bản sao hoàn chỉnh, chính xác; nếu rsync không trả về mã lỗi thì sẽ không có tệp nào xuất hiện (trừ khi có phiên bản cũ hơn của tệp, trong trường hợp đó phiên bản cũ hơn sẽ không được sửa đổi).
scp
và một thông báo lỗi đi kèm đến thiết bị lỗi chuẩn , nó sẽ sao chép mọi thứ chính xác và hoàn toàn.