Wenn Sie den gleichen Satz von Dateien senden, rsync
ist dies besser geeignet, da nur Unterschiede gesendet werden. tar
wird immer alles senden und dies ist eine Verschwendung von Ressourcen, wenn viele der Daten bereits vorhanden sind. Das tar + rsync + untar
verliert in diesem Fall diesen Vorteil sowie den Vorteil, die Ordner synchron zu halten rsync --delete
.
Wenn Sie die Dateien zum ersten Mal kopieren, erst packen, dann senden und dann entpacken (AFAIK rsync
nimmt keine weitergeleiteten Eingaben entgegen), ist dies umständlich und immer schlimmer als nur das Synchronisieren, da rsync
Sie keine Aufgabe mehr als tar
ohnehin erledigen müssen .
Tipp: rsync Version 3 oder höher führt eine inkrementelle Rekursion durch. Dies bedeutet, dass der Kopiervorgang fast unmittelbar bevor alle Dateien gezählt werden, gestartet wird.
Tipp2: Wenn Sie rsync
über verwenden ssh
, können Sie auch eines von beiden verwendentar+ssh
tar -C /src/dir -jcf - ./ | ssh user@server 'tar -C /dest/dir -jxf -'
oder nur scp
scp -Cr srcdir user@server:destdir
Allgemeine Regel, halte es einfach.
AKTUALISIEREN:
Ich habe 59 Millionen Demo-Daten erstellt
mkdir tmp; cd tmp
for i in {1..5000}; do dd if=/dev/urandom of=file$i count=1 bs=10k; done
und die Dateiübertragung auf einen Remote-Server (nicht im selben LAN) mit beiden Methoden mehrmals getestet
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
während Sie die Protokolle von den gesendeten SSH-Verkehrspaketen trennen
wc -l rsync.log rsync+tar.log
36730 rsync.log
37962 rsync+tar.log
74692 total
In diesem Fall kann ich keinen Vorteil bei weniger Netzwerkverkehr mit rsync + tar feststellen. Dies wird erwartet, wenn die Standard-MTU 1500 ist und die Dateien 10 KB groß sind. rsync + tar hatte mehr Verkehr generiert, war 2-3 Sekunden langsamer und hinterließ zwei Mülldateien, die bereinigt werden mussten.
Ich habe die gleichen Tests auf zwei Computern im selben LAN durchgeführt, und dort hat rsync + tar viel bessere Zeiten und viel weniger Netzwerkverkehr erzielt. Ich vermute wegen Jumbo Frames.
Vielleicht wäre rsync + tar besser als nur rsync für einen viel größeren Datensatz. Aber ehrlich gesagt denke ich nicht, dass es die Mühe wert ist, Sie brauchen auf jeder Seite doppelten Platz zum Packen und Auspacken, und es gibt ein paar andere Möglichkeiten, wie ich oben bereits erwähnt habe.