Frage Rsync eine bereits komprimierte Datei


Wird rysnc -z Kompressionsvorteile haben, wenn die Eingabedatei bereits gezippt wurde? Ich habe eine große 100GB komprimierte Datei, die über das Netzwerk über Server hinweg gesendet wird, und es ist nach verschiedenen Zeitpunkten immer wieder fehlgeschlagen (defekte Pipe). Frage mich, ob ich die -z-Flagge versuchen sollte.


4
2017-08-18 07:44


Ursprung


Ich vermute, du hast nach dem gesucht --partial Option, die die Wiederaufnahme der Übertragung ermöglicht, unabhängig davon, was schief gelaufen ist. - FauxFaux


Antworten:


Komprimieren während der Übertragung ist eine bereits komprimierte Datei in der Regel nicht die CPU-Zeit wert. Es gibt Vorbehalte. Beim Vergleichen zweier Dateien kann die Verwendung von rsync mit Komprimierung den Vergleich der Hashwerte der Daten beschleunigen.

Wenn Sie nur komprimierte Versionen großer Dateien auf mehreren Systemen synchronisieren möchten, sollten Sie bestimmte Builds von gzip suchen. Auf einem Ubuntu-System bekomme ich:

$ gzip -h
Verwendung: gzip [OPTION] ... [DATEI] ...
Komprimieren oder dekomprimieren Sie FILEs (komprimieren Sie FILES standardmäßig in-place).

Obligatorische Argumente für lange Optionen sind auch für kurze Optionen obligatorisch.

  -c, --stdout schreibt auf Standardausgabe, behält ursprüngliche Dateien unverändert bei
  -d, - dekomprimieren dekomprimieren
  -f, --force erzwingt das Überschreiben der Ausgabedatei und das Komprimieren von Links
  -h, --help gib diese Hilfe
  -l, --list listet komprimierte Dateiinhalte auf
  -L, - Lizenz Lizenz Lizenz
  -n, --no-name speichert oder stellt den ursprünglichen Namen und Zeitstempel nicht wieder her
  -N, --name speichert oder stellt den ursprünglichen Namen und den Zeitstempel wieder her
  -q, --quiet unterdrückt alle Warnungen
  -r, --recursive arbeiten rekursiv auf Verzeichnissen
  -S, --suffix = SUF verwenden das Suffix SUF für komprimierte Dateien
  -t, --test Test komprimierte Dateiintegrität
  -v, --verbose-Modus
  -V, --version Anzeige Versionsnummer
  -1, --fast schneller komprimieren
  -9, --best besser komprimieren
    --syncable Rsync-freundliches Archiv erstellen

Ohne FILE oder wenn FILE ist -, lesen Sie die Standardeingabe.

Fehler melden an.

Beachte das --rsyncable Möglichkeit? Es vermeidet die adaptive Komprimierung, sodass nur kleine Teile der komprimierten Datei geändert werden, wenn nur eine kleine Änderung an der Quelldatei vorgenommen wird. Der Rest der Binärdaten ist unverändert, so dass rsync das Ganze nicht erneut übertragen muss. Die man-Seite zeigt an, dass diese Option die Größe der komprimierten Datei nicht um mehr als etwa 1% im Vergleich zu der Option erhöhen sollte, und dass gunzip den Unterschied nicht kennt.

Ich habe eine 468MB SQL-Datei, die ich mit 57MB komprimiert habe --rsyncable Möglichkeit. Ich übertrage diese Datei auf mein lokales System. Dann füge ich der ursprünglichen SQL-Datei auf dem Remote-System einen einzeiligen Kommentar hinzu und rekomprimiere mit der rsyncable-Option.

$ rsync -avvz --progress -h fooboo: foo.sql.gz.
öffnende Verbindung mit ssh fooboo rsync --server --sender -vvlogDtprz. foo.sql.gz
Dateiliste empfangen ...
1 zu berücksichtigende Datei
Delta-Übertragung aktiviert
foo.sql.gz
      59,64 M 100% 43,22 MB / s 0:00:01 (xfer # 1, zu prüfen = 0/1)
total: Übereinstimmungen = 7723 hash_hits = 9468 false_alarms = 0 data = 22366

Gesendete 54,12K Bytes empfangen 22,58K Bytes 17,05K Bytes / Sek
Die Gesamtgröße beträgt 59,64 Mio. Beschleunigung ist 777,59

Nicht schlecht. Rsync musste nur eine kleine Menge der neueren komprimierten Datei übertragen.


8
2017-11-20 16:13



Es wäre schön zu vergleichen, was die Übertragung ohne die verwenden würde --rsyncable Möglichkeit. - Kevin Cox


rsync wird eine bereits komprimierte Datei während des Transports nicht wesentlich kleiner machen.

Es ist unwahrscheinlich, dass Ihre fehlgeschlagenen Übertragungen durch Hinzufügen der Markierung -z behoben werden. Ich würde vorschlagen, zu versuchen, die Datei (en) unkomprimiert rsync. rsync wird dann im laufenden Betrieb komprimiert. Sie haben dann den Vorteil, dass wenn sich die Quelldatei ändert und Sie erneut rsync müssen, nur die geänderten Bytes übertragen werden. Wenn Sie eine komprimierte Datei ändern, muss rsync diese wahrscheinlich vollständig erneut übertragen. Sehen Sie hier für mehr Details:

http://beeznest.wordpress.com/2005/02/03/rsyncable-gzip/


2
2017-08-18 08:21





Verwenden rsync -z wird keinen Vorteil gegenüber nur haben rsync wenn Sie mit einer Datei arbeiten, die bereits mit einem guten Komprimierungsformat komprimiert wurde. Sie könnten jedoch in Erwägung ziehen, Ihre komprimierte Datei in kleinere Teile aufzuteilen, sodass Sie sie mit rsync übertragen können.

Hier ist ein Leitfaden für Linux: http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/ Und für Windows: http://www.online-tech-tips.com/computer-tips/how-to-split-a-large-file-into-multiple-smaller-pieces/


2
2017-08-18 08:40