In Bezug auf den Teil "Wiederaufnahme" Ihrer Frage --partialweist Sie das empfangende Ende lediglich an, teilweise übertragene Dateien beizubehalten, wenn das sendende Ende verschwindet, als wären sie vollständig übertragen worden.
Während der Übertragung von Dateien werden diese vorübergehend als versteckte Dateien in ihren Zielordnern (z. B. .TheFileYouAreSending.lRWzDC) oder in einem speziell ausgewählten Ordner gespeichert, wenn Sie den --partial-dirSchalter einstellen . Wenn eine Übertragung fehlschlägt und --partialnicht festgelegt ist, verbleibt diese versteckte Datei im Zielordner unter diesem kryptischen Namen. Wenn dies festgelegt --partialist, wird die Datei jedoch in den tatsächlichen Zieldateinamen umbenannt (in diesem Fall TheFileYouAreSending), obwohl die Datei ist nicht vollständig. Der Punkt ist, dass Sie die Übertragung später abschließen können, indem Sie rsync erneut mit --appendoder ausführen --append-verify.
Also, --partialnicht selbst einen fehlgeschlagenen oder abgebrochenen Übertragung fortzusetzen. Um es fortzusetzen, müssen Sie beim nächsten Lauf eines der oben genannten Flags verwenden. Wenn Sie also sicherstellen müssen, dass das Ziel niemals Dateien enthält, die in Ordnung zu sein scheinen, aber tatsächlich unvollständig sind, sollten Sie nicht verwenden --partial. Umgekehrt, wenn Sie sicherstellen möchten, dass keine fehlgeschlagenen Dateien im Zielverzeichnis zurückbleiben und Sie wissen, dass Sie die Übertragung später abschließen können, können Sie dies tun --partial.
In Bezug auf den --appendoben genannten Schalter ist dies der eigentliche "Resume" -Schalter, und Sie können ihn unabhängig davon verwenden, ob Sie ihn auch verwenden oder nicht --partial. Tatsächlich werden bei der Verwendung --appendkeine temporären Dateien erstellt. Dateien werden direkt auf ihre Ziele geschrieben. In dieser Hinsicht erhalten Sie --appenddasselbe Ergebnis wie --partialbei einer fehlgeschlagenen Übertragung, jedoch ohne die ausgeblendeten temporären Dateien zu erstellen.
Also, um es zusammenzufassen, wenn Sie große Dateien in Bewegung sind und Sie wollen , dass die Option eine abgebrochene oder nicht von der exakten Punkt rsync Betrieb wieder aufnehmen , die rsyncgestoppt wird , müssen Sie die verwenden --appendoder --append-verifyschalten Sie den nächsten Versuch.
Wie @Alex weiter unten ausführt, gibt es seit Version 3.0.0 rsynceine neue Option --append-verify, die sich so verhält, wie --appendvor dem Bestehen dieses Schalters. Sie möchten wahrscheinlich immer das Verhalten von --append-verify, also überprüfen Sie Ihre Version mit rsync --version. Wenn Sie einen Mac verwenden und nicht rsyncvon verwenden homebrew, verfügen Sie (mindestens bis einschließlich El Capitan) über eine ältere Version und müssen diese verwenden, --appendanstatt --append-verify. Warum sie das Verhalten nicht beibehalten --appendund stattdessen den Neuling genannt haben, --append-no-verifyist ein bisschen rätselhaft. So oder so, --appendauf dem rsyncvor Version 3 ist das gleiche wie --append-verifybei den neueren Versionen.
--append-verifyist nicht gefährlich: Es liest und vergleicht immer die Daten an beiden Enden und geht nicht nur davon aus, dass sie gleich sind. Dabei werden Prüfsummen verwendet, wodurch das Netzwerk entlastet wird. Es muss jedoch die gemeinsam genutzte Datenmenge an beiden Enden der Leitung gelesen werden, bevor die Übertragung durch Anhängen an das Ziel fortgesetzt werden kann.
Zweitens sagten Sie, dass Sie "gehört haben, dass rsync Unterschiede zwischen Quelle und Ziel finden und daher nur die Unterschiede kopieren kann".
Das ist richtig, und es heißt Delta-Transfer, aber es ist eine andere Sache. Um dies zu aktivieren, fügen Sie den Schalter -coder hinzu --checksum. Sobald dieser Schalter verwendet wird, überprüft rsync Dateien, die an beiden Enden der Leitung vorhanden sind. Dies geschieht in Stücken, vergleicht die Prüfsummen an beiden Enden und überträgt, wenn sie unterschiedlich sind, nur die unterschiedlichen Teile der Datei. Wie @Jonathan unten ausführt, wird der Vergleich jedoch nur durchgeführt, wenn die Dateien an beiden Enden dieselbe Größe haben. Unterschiedliche Größen führen dazu, dass rsync die gesamte Datei hochlädt und das Ziel mit demselben Namen überschreibt.
Dies erfordert anfangs ein wenig Berechnung auf beiden Seiten, kann jedoch bei der Reduzierung der Netzwerklast äußerst effizient sein, wenn Sie beispielsweise häufig sehr große Dateien mit fester Größe sichern, die häufig geringfügige Änderungen enthalten. Beispiele dafür sind Image-Dateien für virtuelle Festplatten, die in virtuellen Maschinen oder iSCSI-Zielen verwendet werden.
Es ist bemerkenswert, dass --checksumrsync beim Übertragen eines Stapels völlig neuer Dateien auf das Zielsystem deren Prüfsummen vor dem Übertragen auf dem Quellsystem berechnet. Warum weiß ich nicht :)
Also, kurz gesagt:
Wenn Sie verwenden oft rsync nur „Sachen von A nach B bewegen“ und wollen die Möglichkeit , dass die Operation abzubrechen und später wieder aufnehmen, nicht zu verwenden --checksum, aber nicht verwenden --append-verify.
Wenn Sie rsync häufig zum Sichern von Daten verwenden, wird die Verwendung --append-verifywahrscheinlich nicht viel für Sie bedeuten, es sei denn, Sie haben die Angewohnheit, große Dateien zu senden, die ständig größer werden, aber nach dem Schreiben selten geändert werden. Wenn Sie ein Backup auf einen Speicher erstellen, der Snapshots wie btrfsoder unterstützt zfs, können --inplaceSie die Snapshot-Größe verringern , indem Sie den Schalter hinzufügen, da geänderte Dateien nicht neu erstellt werden, sondern die geänderten Blöcke direkt über die alten geschrieben werden. Diese Option ist auch nützlich, wenn Sie vermeiden möchten, dass rsync Kopien von Dateien auf dem Ziel erstellt, wenn nur geringfügige Änderungen vorgenommen wurden.
Bei Verwendung von --append-verifyverhält sich rsync genauso wie immer bei allen Dateien gleicher Größe. Wenn sich Änderungen oder andere Zeitstempel unterscheiden, wird das Ziel mit der Quelle überschrieben, ohne dass diese Dateien weiter überprüft werden. --checksumvergleicht den Inhalt (Prüfsummen) jedes Dateipaares mit identischem Namen und identischer Größe.
AKTUALISIERT 01.09.2015 Geändert, um die von @Alex gemachten Punkte wiederzugeben (danke!)
AKTUALISIERT 14.07.2017 Geändert, um die von @Jonathan gemachten Punkte wiederzugeben (danke!)