
Ich habe den Befehl „Rsync“ verwendet, um große Datenmengen vom Dateisystem auf NFS zu übertragen (ca. 1 Tera).
Nach einiger Zeit schaltete sich der Computer ab und die Übertragung wurde abgebrochen (die Übertragung von 600 GB dauerte etwa 10 Stunden).
Einige der hochgeladenen Dateisysteme wurden von Benutzern geändert/hinzugefügt. Ich möchte wissen, ob Rsync, wenn ich es erneut verwende, ohne die teilweise Übertragung zu löschen, die übertragenen Dateien ignorieren und die geänderten Dateien erneut hochladen soll.
P.S.: Wenn es die Option gibt, Rsync fortzusetzen, werden die übertragenen Dateien dann viel schneller ignoriert, als sie beim ersten Mal hochgeladen wurden? Ich mache mir darüber Sorgen, weil ich 10 Stunden gebraucht habe, um 600 G zu übertragen, und ich hoffe, dass das nächste Rsync viel schneller sein wird.
Bearbeiten: Anscheinend kann ich Antworten nicht kommentieren … also habe ich für @Kusalananda verwendet rsync -rtzvx
.
Antwort1
Sie haben die Optionen nicht verwendet -a
, daher wurden weder Benutzer- und Gruppeneigentümer noch Berechtigungen beibehalten. Zeitstempel wurden jedoch durch die Verwendung von beibehalten -t
.
Wenn Sie rsync jetzt neu starten, kann es die obigen Metadaten nicht verwenden, um zu bestimmen, ob die Datei am Ziel dieselbe ist wie an der Quelle. Wenn Sie Glück haben, können Sie verwenden --size-only
, was rsync anweist, davon auszugehen, dass die Datei identisch ist, wenn die Größe gleich ist; dies funktioniert normalerweise nur bei Dingen wie Protokolldateien oder Fotos richtig.
Allerdings ist es vielleicht nicht so schlimm, wie Sie vielleicht denken: rsync prüft jede Datei sowohl auf der Quelle als auch auf dem Ziel, und nur wenn die Prüfsumme einen Unterschied zeigt, werden die unterschiedlichen Blöcke übertragen. Das heißt, nicht die ganze Datei wird erneut übertragen, sondern nur die geänderten Blöcke. Das ist die Stärke von rsync: Optimierung der Netzwerkbandbreitennutzung auf Kosten von mehr Festplatten-E/A.
Dies setzt natürlich voraus, dass rsync über das Netzwerk auf einen anderen Host überträgt. Wenn das von Ihnen erwähnte NFS-Dateisystem lokal gemountet ist, ist rsync wahrscheinlich nicht das richtige Tool dafür, da rsync beim Überprüfen der Dateien tatsächlich viel mehr Netzwerkbandbreite verbraucht. Außerdem wechselt rsync --whole-file
bei lokalen Übertragungen in den -Modus, da es keinen Sinn ergibt, zuerst die gesamte Quell- und Zieldatei zu überprüfen und dann die Quelle in das Ziel zu kopieren.
Generell empfehle ich die Verwendung von , -a
wenn möglich. Sie müssen es möglicherweise mit kombinieren, --numeric-ids
wenn Sie an Quelle und Ziel unterschiedliche Benutzer haben; wenn Sie dieselben Benutzer haben, die IDs aber unterschiedlich sein können, verwenden Sie NICHT --numeric-ids
, rsync ordnet die IDs entsprechend dem Namen zu.