Normalerweise werden rsync
Dateien übersprungen, wenn die Dateien auf der Quell- und Zielseite identische Größen und Zeiten haben. Dies ist eine Heuristik, die normalerweise eine gute Idee ist, da sie verhindert, rsync
dass der Inhalt von Dateien untersucht werden muss, die auf der Quell- und Zielseite höchstwahrscheinlich identisch sind.
--ignore-times
Weist rsync
an, die Heuristik für die Dateizeiten und -größen zu deaktivieren und somit ALLE Dateien bedingungslos von der Quelle zum Ziel zu übertragen. rsync
Anschließend wird jede Datei auf der Quellseite gelesen, da entweder der Delta-Übertragungsalgorithmus verwendet werden muss, oder es wird einfach jede Datei in ihrer Gesamtheit gesendet, je nachdem, ob die --whole-file
Option angegeben wurde.
--checksum
Ändert auch die Heuristik für Dateizeiten und -größen, ignoriert hier jedoch Zeiten und untersucht nur Größen. Dateien auf der Quell- und Zielseite, die sich in der Größe unterscheiden, werden übertragen, da sie offensichtlich unterschiedlich sind. Dateien mit derselben Größe werden mit einer Prüfsumme versehen (mit MD5 in rsync
Version 3.0.0+ oder mit MD4 in früheren Versionen), und diejenigen, bei denen unterschiedliche Summen festgestellt wurden, werden ebenfalls übertragen.
In Fällen, in denen die Quell- und Zielseite größtenteils identisch sind, --checksum
werden die meisten Dateien auf beiden Seiten mit einer Prüfsumme versehen. Dies kann lange dauern, aber das Ergebnis ist, dass das kleinste Datenminimum tatsächlich über die Leitung übertragen wird, insbesondere wenn der Delta-Übertragungsalgorithmus verwendet wird. Dies ist natürlich nur dann ein Gewinn, wenn Sie sehr langsame Netzwerke und / oder eine sehr schnelle CPU haben.
--ignore-times
Auf der anderen Seite werden mehr Daten über das Netzwerk gesendet, und alle Quelldateien werden gelesen. Zumindest bedeutet dies jedoch nicht, dass die Quell- und Ziel-CPUs zusätzlich mit vielen kryptografisch starken Hashs belastet werden müssen. Ich würde erwarten, dass diese Option eine bessere Leistung erbringt, als --checksum
wenn Ihre Netzwerke schnell und / oder Ihre CPU relativ langsam sind.
Ich denke, ich würde nur verwenden --checksum
oder --ignore-times
wenn ich Dateien an ein Ziel übertragen würde, bei dem der Verdacht bestand, dass der Inhalt einiger Dateien beschädigt war, deren Änderungszeiten jedoch nicht geändert wurden. Ich kann mir keinen anderen guten Grund vorstellen, eine der beiden Optionen zu verwenden, obwohl es wahrscheinlich andere Anwendungsfälle gibt.
--checksum
zusammen mit--itemize-changes
für die Überprüfung von Sicherungen nützlich gefunden . Von Zeit zu Zeit werden meine Backup-Skripte auf diese Weise vollständig verglichen, nachdem die aktuellen täglichen / wöchentlichen Aktualisierungen abgeschlossen sind. Ich erhalte eine als dringend gekennzeichnete E-Mail, wenn--itemize-changes
etwas Unerwartetes ausgegeben wird. Daher weiß ich, dass ein potenzielles Problem vorliegt, das ich untersuchen sollte.--ignore-times
--checksum
Dies ist insbesondere dann erforderlich, wenn eine Ihrer "Dateien" ein Truecrypt-Dateicontainer ist, da der Zeitstempel der Datei standardmäßig nicht aktualisiert wird. Siehe productforums.google.com/forum/#!topic/drive/gnmDp3UXEgs und ask-leo.com/why_wont_my_truecrypt_volume_backup.html--checksum
Prüfsumme nur die Quelldateinamen auf der Zielmaschine oder alle Dateien im Zielverzeichnis?Die Prüfsumme ist auch nützlich, wenn Sie ein anderes System zum Synchronisieren von Dateien verwendet haben, bei dem Zeitstempel nicht beibehalten wurden. Die Prüfsumme überträgt nur Dateien, die unterschiedlich sind, UND aktualisiert alle Zeitstempel auf der empfangenden Seite so, dass sie übereinstimmen
quelle
Ein Detail: Die Prüfsummenoption prüft eine ganze Datei an einem Ende und dann die ganze Datei am anderen Ende. Wenn Ihre Dateien etwas groß sind, wird die Parallelität auf diese Weise beendet.
Wenn Sie große Dateien haben, ist es am wahrscheinlichsten, dass Sie mit einem Timeout konfrontiert werden
--checksum
, mit dem Sie nicht konfrontiert werden-I
.quelle
In
info rsync
Bezug auf die--checksum
Option - "Da diese Prüfsumme aller Dateien auf beiden Seiten der Verbindung zusätzlich zu den automatischen Prüfsummenüberprüfungen bei der Dateiübertragung auftritt, kann diese Option sehr langsam sein."quelle
Die
--ignore-times
Option führt wahrscheinlich dazu, dass alle Dateien Delta-codiert sind und der Delta-Übertragungsalgorithmus (Delta-Codierung) mindestens so langsam ist wie die Prüfsumme.Ich weiß nicht, ob rsync
--ignore-times
intelligent genug ist, um die "automatische Überprüfung nach der Übertragung" zu vermeiden, wenn die Delta-Übertragung dazu führt, dass nichts übertragen wird.Für
--ignore-times
:Beide
--checksum
und--ignore-times
werden "ziemlich langsam" sein, sind aber--ignore-times
wahrscheinlich noch langsamer (aufgrund der beiden oben genannten Möglichkeiten).Gute Frage - bitte posten Sie, wenn Sie Leistungsunterschiede in der Praxis feststellen.
quelle