Biasanya, rsync
melompati file ketika file memiliki ukuran dan waktu yang sama di sisi sumber dan tujuan. Ini adalah heuristik yang biasanya merupakan ide yang baik, karena mencegah rsync
dari harus memeriksa isi file yang sangat mungkin identik pada sisi sumber dan tujuan.
--ignore-times
memberitahu rsync
untuk mematikan heuristik waktu-dan-ukuran file, dan dengan demikian mentransfer SEMUA file tanpa syarat dari sumber ke tujuan. rsync
kemudian akan melanjutkan untuk membaca setiap file di sisi sumber, karena itu akan perlu menggunakan algoritma delta-transfer, atau cukup mengirim setiap file secara keseluruhan, tergantung pada apakah --whole-file
opsi tersebut ditentukan.
--checksum
juga memodifikasi heuristik waktu-dan-ukuran file, tetapi di sini mengabaikan waktu dan hanya memeriksa ukuran. File pada sisi sumber dan tujuan yang berbeda dalam ukuran ditransfer, karena mereka jelas berbeda. File dengan ukuran yang sama adalah checksummed (dengan MD5 dalam rsync
versi 3.0.0+, atau dengan MD4 di versi sebelumnya), dan yang ditemukan memiliki jumlah yang berbeda juga ditransfer.
Dalam kasus di mana sisi sumber dan tujuan sebagian besar sama, --checksum
akan menghasilkan sebagian besar file checksummed di kedua sisi. Ini bisa memakan waktu lama, tetapi hasilnya adalah bahwa data minimum yang paling sederhana sebenarnya akan ditransfer melalui kabel, terutama jika algoritma delta-transfer digunakan. Tentu saja, ini hanya kemenangan jika Anda memiliki jaringan yang sangat lambat, dan / atau CPU yang sangat cepat.
--ignore-times
, di sisi lain, akan mengirim lebih banyak data melalui jaringan, dan itu akan menyebabkan semua file sumber dibaca, tetapi setidaknya itu tidak akan membebani beban tambahan komputasi banyak hashsum yang kuat secara kriptografis pada CPU sumber dan tujuan. Saya berharap opsi ini berkinerja lebih baik daripada --checksum
ketika jaringan Anda cepat, dan / atau CPU Anda relatif lambat.
Saya pikir saya hanya akan menggunakan --checksum
atau --ignore-times
jika saya mentransfer file ke tujuan di mana diduga bahwa beberapa file rusak, tetapi waktu modifikasinya tidak berubah. Saya tidak bisa memikirkan alasan bagus lainnya untuk menggunakan kedua opsi ini, walaupun mungkin ada beberapa use case lainnya.
--checksum
berguna bersama--itemize-changes
untuk memverifikasi cadangan. Sesekali skrip cadangan saya menjalankan perbandingan penuh dengan cara ini setelah pembaruan harian / mingguan saat ini selesai. Saya mendapatkan email yang ditandai mendesak jika--itemize-changes
output sesuatu yang tidak terduga, jadi saya tahu ada potensi masalah yang harus saya perhatikan.