Bu araçlar arasındaki en büyük fark dosyaları nasıl kopyaladıklarıdır.
scp
temelde kaynak dosyayı okur ve hedefe yazar. Yerel olarak veya bir ağ üzerinden düz doğrusal bir kopya gerçekleştirir.
rsync
ayrıca dosyaları yerel olarak veya bir ağ üzerinden kopyalar. Ancak , işlemi çok daha hızlı hale getirmek için özel bir delta aktarım algoritması ve birkaç optimizasyon kullanır. Aramayı düşünün.
rsync A host:B
rsync
dosya boyutları ve her iki modifikasyonu damgalarını kontrol edecek A ve B , ve eğer eşleşirse sonraki işlemler atlayın.
Hedef dosya B zaten mevcutsa, delta aktarım algoritması kablo üzerinden sadece A ve B arasındaki farkların gönderildiğinden emin olur .
rsync
verileri geçici bir T dosyasına yazar ve güncellemenin B kullanıyor olabilen işlemlere "atomik" görünmesini sağlamak için hedef dosya B'yi T ile değiştirir .
Aralarındaki bir diğer fark, istila ile ilgilidir. rsync
kullanıcının davranışlarına ince ayar yapmasına izin veren çok sayıda komut satırı seçeneği vardır. Karmaşık filtre kurallarını destekler, toplu modda, daemon modunda çalışır, vb. scp
Sadece birkaç anahtar vardır.
Özet scp
olarak günlük işleriniz için kullanın . İnteraktif kabuğunuzda arada bir yazdığınız komutlar. Kullanımı daha basittir ve bu durumlarda rsync
optimizasyonlar pek yardımcı olmaz.
cron
İşler gibi yinelenen görevler için kullanın rsync
. Daha önce de belirtildiği gibi, birden çok çağrıda aktarılan verilerden faydalanacak, çok hızlı performans gösterecek ve kaynaklardan tasarruf edecektir. İki dizini bir ağ üzerinden senkronize tutmak için mükemmel bir araçtır.
Ayrıca, büyük dosyalarla uğraşırken rsync
, -P
seçenekle birlikte kullanın. Aktarım yarıda kesilirse, komutu yeniden vererek aktarımın durduğu yerden devam edebilirsiniz. Sid Kshatriya'nın cevabına bakınız .