Aynı dosya grubunu gönderdiğinizde, rsync
yalnızca farklılıklar göndereceği için daha uygundur. tar
her zaman her şeyi gönderir ve bu, çoğu veri zaten varsa, bu bir kaynak israfıdır. tar + rsync + untar
Bu durumda bu avantajı yanı sıra ile senkronize klasörleri tutma avantajına kaybeder rsync --delete
.
Dosyaları ilk kez kopyalarsanız, önce paketler, sonra gönderir, sonra da paketten çıkarırsınız (AFAIK rsync
borulu girdiler almaz) zahmetlidir ve her zaman sadece rsyncing'den daha kötüdür, çünkü zaten rsync
herhangi bir işlem yapmak zorunda kalmazsınız tar
.
İpucu: rsync sürüm 3 veya üstü, artımlı özyineleme yapar, yani tüm dosyaları saymadan hemen önce kopyalamaya başlar.
Tip2: Eğer kullanırsanız rsync
üzerinde ssh
, ayrıca herhangi birini kullanabilirsiniztar+ssh
tar -C /src/dir -jcf - ./ | ssh user@server 'tar -C /dest/dir -jxf -'
ya da sadece scp
scp -Cr srcdir user@server:destdir
Genel kural, basit olsun.
GÜNCELLEŞTİRME:
59M demo verilerini oluşturdum
mkdir tmp; cd tmp
for i in {1..5000}; do dd if=/dev/urandom of=file$i count=1 bs=10k; done
ve her iki yöntemi de kullanarak birkaç kez dosya aktarımını uzak bir sunucuya (aynı satırda değil) test etti.
time rsync -r tmp server:tmp2
real 0m11.520s
user 0m0.940s
sys 0m0.472s
time (tar cf demo.tar tmp; rsync demo.tar server: ; ssh server 'tar xf demo.tar; rm demo.tar'; rm demo.tar)
real 0m15.026s
user 0m0.944s
sys 0m0.700s
gönderilen günlükleri ssh trafik paketlerinden ayrı tutarken
wc -l rsync.log rsync+tar.log
36730 rsync.log
37962 rsync+tar.log
74692 total
Bu durumda, varsayılan mtu 1500 olduğunda ve dosyalar 10k boyutunda iken beklenen rsync + tar kullanarak daha az ağ trafiğinde bir avantaj göremiyorum. rsync + tar daha çok trafik üretti, 2-3 saniye daha yavaştı ve temizlenmesi gereken iki çöp dosyasını bıraktı.
Aynı lan üzerinde iki makinede aynı testleri yaptım ve orada rsync + tar daha iyi zamanlar ve çok daha az ağ trafiği yaptı. Jumbo çerçevelerin nedenini varsayıyorum.
Belki de rsync + tar, çok daha büyük bir veri setindeki rsync'ten daha iyi olacaktır. Ama açıkçası, bunun bir zahmete değeceğini sanmıyorum, her iki tarafta da paketleme ve açma işlemleri için iki alana ihtiyacınız var ve yukarıda da belirttiğim gibi birkaç seçenek daha var.