scp
memverifikasi bahwa itu menyalin semua data yang dikirim oleh pihak lain. Integritas transfer dijamin oleh protokol saluran kriptografi. Jadi, Anda tidak perlu memverifikasi integritas setelah transfer. Itu akan berlebihan, dan sangat tidak mungkin untuk menangkap kesalahan perangkat keras karena data yang Anda bandingkan mungkin akan dibaca dari cache. Memverifikasi data secara berkala dapat bermanfaat, tetapi memverifikasi segera setelah transfer tidak ada gunanya.
Namun Anda perlu memastikan bahwa scp
tidak memberi tahu Anda bahwa ada sesuatu yang salah. Harus ada pesan kesalahan, tetapi indikator yang dapat diandalkan adalah bahwa scp
pengembalian kode nol keluar jika sesuatu yang tidak beres.
Lebih tepatnya, Anda tahu bahwa file itu dikirim dengan benar jika scp
mengembalikan 0 (yaitu kode status keberhasilan). Memeriksa bahwa status keluar adalah 0 diperlukan ketika Anda menjalankan perintah apa pun. Jika scp
mengembalikan status kesalahan, atau jika terbunuh oleh sinyal, atau jika tidak pernah mati karena sistem crash atau kehilangan daya saat sedang berjalan, maka Anda tidak memiliki jaminan. Secara khusus, karena scp
menyalin file secara langsung ke nama akhirnya, ini berarti bahwa Anda dapat berakhir dengan sebagian file jika terjadi sistem crash. Bagian yang disalin dijamin benar tetapi file mungkin terpotong.
Untuk keandalan yang lebih baik, gunakan rsync bukan scp. Kecuali diinstruksikan sebaliknya, rsync menulis ke file sementara, dan memindahkannya ke tempatnya setelah selesai. Jadi, jika rsync mengembalikan kode sukses, Anda tahu file tersebut ada dan salinan lengkap yang benar; jika rsync belum mengembalikan kode kesalahan maka tidak ada file yang akan hadir (kecuali ada versi file yang lebih lama, dalam hal ini versi yang lebih lama tidak akan dimodifikasi).
scp
dan pesan kesalahan yang menyertainya ke stderr , itu akan menyalin semuanya dengan benar dan lengkap.