GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fortsetzen der Übertragung einer einzelnen Datei durch rsync

Um eine unterbrochene Kopie fortzusetzen, sollten Sie rsync --append verwenden . Aus der Erklärung der Manpage zu --append :

Dies bewirkt, dass rsync eine Datei aktualisiert, indem es Daten an das Ende der Datei anhängt, wasvoraussetzt, dass die bereits auf der Empfängerseite vorhandenen Daten mit dem Anfang der Datei auf der Senderseite identisch sind. [...] Impliziert --inplace , [...]

Option --inplace macht rsync (über)schreiben Sie den Inhalt der Zieldatei direkt; ohne --inplace , rsync würde:

  1. erstellen Sie eine neue Datei mit einem temporären Namen,
  2. aktualisierten Inhalt hineinkopieren,
  3. mit der Zieldatei austauschen und schließlich
  4. Löschen Sie die alte Kopie der Zieldatei.

Der normale Betriebsmodus verhindert hauptsächlich Konflikte mit Anwendungen, die möglicherweise die Zieldatei geöffnet haben, und einige andere Pannen, die ordnungsgemäß in rsync aufgeführt sind Handbuchseite.

Beachten Sie, dass, wenn ein Kopier-/Aktualisierungsvorgang in den Schritten 1.-3. oben,rsync löscht die temporäre Zieldatei; die --partial Option deaktiviert dieses Verhalten und rsync belässt teilweise übertragene temporäre Dateien auf dem Zieldateisystem. Daher bringt das Fortsetzen einer einzelnen Dateikopieroperation nicht viel, es sei denn, Sie haben den ersten rsync aufgerufen mit --partial oder--partial-dir (gleiche Wirkung wie --partial , weist zusätzlich rsync an um alle temporären Dateien in einem bestimmten Verzeichnis zu erstellen).


Beachten Sie, dass --append impliziert --inplace , was selbst --partial impliziert .

  • Indem Sie einfach --partial verwenden Sie sollten rsync verursachen Teilübertragungen zu verlassen und bei späteren Versuchen fortzusetzen.

  • Durch die Verwendung von --append Sie sollten rsync verursachen Teildateien zu verlassen und sie beim nächsten Mal fortzusetzen. Nach Übertragung rsync sollte nur die Prüfsumme der übertragenen Daten prüfen.

  • --append-verify bezieht die gesamte Datei in die Prüfsummenüberprüfung ein, einschließlich aller Teile, die bei einer früheren Übertragung übertragen wurden.

  • Entweder mit --append oder --append-verify eine fehlgeschlagene Prüfsummenüberprüfung sollte dazu führen, dass die Datei vollständig neu übertragen wird (mit --inplace )

Sie sollten in der Lage sein, mv fortzusetzen oder cp Betrieb mit rsync aber vielleicht möchten Sie den --append-verify verwenden Option für Seelenfrieden.

Beachten Sie, dass Sie --append verwenden verursacht rsync nur zu kopieren jene Dateien, deren Größe auf dem Empfänger kleiner ist als die Größe auf dem Sender (unabhängig von Zeitstempeln) oder die auf dem Empfänger fehlen. Durch Dokumentation zu dieser Option:

Wenn eine Datei übertragen werden muss und ihre Größe auf dem Empfänger gleich oder größer als die Größe auf dem Sender ist, wird die Datei übersprungen.

Weitere Informationen in der Manpage


David Schwartz hat Recht, --partial (oder besser -P ) macht was du willst. Ich habe dies an einer 37-G-Datei überprüft, die über ein Netzwerk mit ~ 8 G gestoppt wurde. rsync scannte schnell die ersten Teile des Teils (zeigt den Fortschritt dank -P ) und setzte dann die Übertragung bis zum Ende der unvollständigen Datei fort.


Linux
  1. Dateiübertragungsprotokolle:FTP vs. SFTP

  2. Intelligentere Dateiübertragungen als Rsync??

  3. Bestimmte Dateien zu einer einzigen Datei verketten?

  4. Rsync Zwei Dateitypen in einem Befehl?

  5. RSync:Wie synchronisiere ich in beide Richtungen?

So übertragen Sie Dateien mit Rsync über SSH

Rsync-Beispiele zum Übertragen von Dateien unter Linux

Was ist das File Transfer Protocol (FTP)

So verwenden Sie Netcat zum Übertragen von Dateien unter Linux

Übertragen Sie Dateien mit WinSCP

rsync unter Windows + Nicht-ASCII-Dateinamen