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

Warum verwendet rsync keine Delta-Übertragung für lokale Dateien?

Laut Manpage hat psusi Recht:

-W, --ganze-Datei :Die Übertragung kann schneller sein, wenn diese Option verwendet wird, wenn die Bandbreite zwischen Quell- und Zielcomputer höher ist als die Bandbreite zur Festplatte (insbesondere wenn die "Festplatte" tatsächlich ein vernetztes Dateisystem ist). Dies ist die Standardeinstellung, wenn sowohl die Quelle als auch das Ziel als lokale Pfade angegeben sind, aber nur, wenn keine Stapelschreiboption aktiviert ist.


Die einfache Antwort auf diese Frage lautet:

Verwenden Sie den --no-W Flag, um eine Delta-Komprimierung zu erzwingen, egal ob lokal oder remote.

Aktualisierung: Anscheinend steckt mehr hinter der Geschichte. Die delta compression scheint nur zwischen dem Empfangs- und Sendeprozess von rsync aktiviert zu sein. Beim Ausgeben der Datei an das Dateisystem rsync kann immer noch die ganze(n) Datei(en) schreiben, sogar mit eingeschalteter Delta-Komprimierung.

Siehe "Wakan Tankas" Untersuchung hier.

Aktualisierung 2: Die --inplace schreibt nur die geänderten Teile der Datei. Beachten Sie jedoch, dass dies mit --sparse in Konflikt steht und wird laut Handbuch nicht empfohlen, wenn die Zieldatei verwendet wird.


Standardmäßig erstellt rsync aus verschiedenen Sicherheitsgründen zuerst eine neue Kopie der Zieldatei und ersetzt sie dann. Sie können dies überschreiben, indem Sie --inplace angeben zusammen mit --no-whole-file . Dies weist rsync an, eine In-Place-Bearbeitung der Zieldatei durchzuführen, wobei die verschiedenen Risiken (typischerweise geringfügig für diese Situation) akzeptiert werden, wie in der Manpage dokumentiert.


Linux
  1. Warum kann Rm schreibgeschützte Dateien entfernen?

  2. Warum funktioniert „zip“ in einer For-Schleife, wenn die Datei existiert, aber nicht, wenn sie nicht existiert?

  3. Wann sind es ausführbare Dateien nicht?

  4. Warum muss stdout explizit geleert werden, wenn es in eine Datei umgeleitet wird?

  5. Warum shm_open verwenden?

Warum ich unter Linux exa anstelle von ls verwende

So verwenden Sie CherryTree für Notizen

ls-Befehl in Linux zum Auflisten von Dateien

Warum öffnet Gedit beim Öffnen von Dateien aus Nautilus zufällig neue Instanzen?

Warum verwendet Linux eine Swap-Partition und keine Datei?

Wie lösche ich .fuse_hidden*-Dateien?