Perbedaan utama antara alat-alat ini adalah bagaimana mereka menyalin file.
scp
pada dasarnya membaca file sumber dan menulisnya ke tujuan. Ia melakukan salinan linear biasa, secara lokal, atau melalui jaringan.
rsync
juga menyalin file secara lokal atau melalui jaringan. Tetapi menggunakan algoritma transfer delta khusus dan beberapa optimasi untuk membuat operasi jauh lebih cepat. Pertimbangkan panggilannya.
rsync A host:B
rsync
akan memeriksa ukuran file dan stempel waktu modifikasi A dan B , dan melewati pemrosesan lebih lanjut jika cocok.
Jika file tujuan B sudah ada, algoritma transfer delta akan memastikan hanya perbedaan antara A dan B yang dikirim melalui kabel.
rsync
akan menulis data ke file sementara T , dan kemudian mengganti file tujuan B dengan T untuk membuat update tampilan "atom" untuk proses yang mungkin menggunakan B .
Perbedaan lain di antara mereka menyangkut doa. rsync
memiliki sejumlah opsi baris perintah, yang memungkinkan pengguna menyesuaikan perilakunya. Ini mendukung aturan filter yang kompleks, berjalan dalam mode batch, mode daemon, dll. Hanya scp
memiliki beberapa switch.
Singkatnya, gunakan scp
untuk tugas sehari-hari Anda. Perintah yang Anda ketik sesekali pada shell interaktif Anda. Ini lebih mudah digunakan, dan dalam kasus itu rsync
optimasi tidak akan banyak membantu.
Untuk tugas berulang, seperti cron
pekerjaan, gunakan rsync
. Seperti yang disebutkan, pada banyak pemanggilan akan mengambil keuntungan dari data yang sudah ditransfer, berkinerja sangat cepat dan menghemat sumber daya. Ini adalah alat yang sangat baik untuk menjaga dua direktori disinkronkan melalui jaringan.
Juga, ketika berhadapan dengan file besar, gunakan rsync
dengan -P
opsi. Jika transfer terputus, Anda dapat melanjutkannya di tempat terhenti dengan menerbitkan kembali perintah. Lihat jawaban Sid Kshatriya .