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.