Sie können nicht "das Ganze gzipen", da gzip nur eine Datei komprimiert. Sie können auch eine TAR-Datei erstellen und gzipen, um das Ganze gzipen zu können. Sie verlieren jedoch die rsync-Fähigkeit, nur geänderte Dateien zu kopieren.
Die Frage ist also: Ist es besser, Dateien zu speichern, die ich zum rsync-Gzipen benötige, oder sich auf die Option -z von rsync zu verlassen?
Die Antwort ist wahrscheinlich, dass Sie die Datei nicht auf Ihrem Server entpacken möchten? Ich schätze ja, deshalb sehe ich nicht, wie Sie es schaffen könnten, eine GZIP-Datei zu erstellen, bevor Sie den Rsync durchführen.
Benötigen Sie möglicherweise nicht die rsync-Funktion, um nur geänderte Dateien zu kopieren? In diesem Fall, warum sollten Sie rsync verwenden, anstatt einen scp einer tar.gz-Datei zu erstellen, die Ihre Daten enthält?
Wie auch immer, um die Frage zu beantworten, ist rsync gzip etwas weniger effizient als das Gziping von Dateien mit gzip. Warum ? Da rsync Datenblock für Block gzipt, wird ein kleinerer Satz von Daten verwendet, um die Tabelle zu erstellen, die gzip für die Komprimierung verwendet, ein größerer Satz von Daten (gzip würde die gesamte Datei auf einmal verwenden) ergibt eine bessere Komprimierungstabelle. Aber der Unterschied ist in den meisten Fällen sehr, sehr gering, aber in sehr seltenen Fällen kann der Unterschied wichtiger sein (wenn Sie eine sehr große Datei mit sehr langen Partern haben, die viele Male auf der Datei wiederholen, aber weit voneinander entfernt sind) ein sehr vereinfachtes Beispiel)
Wenn Sie die Daten nur einmal kopieren, ist rsync kein großer Gewinn für sich. Wenn Sie gzip (oder tar + gzip, da Sie viele Dateien haben) mögen, könnten Sie Folgendes ausprobieren:
Das würde die Komprimierung erhalten, die Sie suchen, und nur direkt kopieren, ohne rsync zu involvieren.
quelle
@radius, eine kleine nit zu holen , wie
gzip
Werke -gzip
ist ein blockbasierte Kompressionsalgorithmus und eine ziemlich einfache Sorte. Die gesamte Datei wird nicht für die Komprimierungstabelle berücksichtigt - nur für jeden Block. Andere Algorithmen können den gesamten Inhalt der Datei verwenden, und es gibt einige, die den Inhalt mehrerer Blöcke oder sogar unterschiedlich großer Blöcke verwenden. Ein faszinierendes Beispiel istlrzip
derselbe Autor wiersync
!Der
gzip
Algorithmus des Skinny On .Zusammenfassend
rsync -z
ergibt die Verwendung wahrscheinlich die gleiche Komprimierung wie diegzip
erste - und wenn Sie eine differenzielle Übertragung durchführen, ist dies aufgrund desrsync
abweichenden Algorithmus besser .Das heißt, ich denke, man wird feststellen, dass normale
scp
handliche Beatsrsync
für nicht-differentielle Übertragungen - weil sie viel weniger Overhead haben alsrsync
der Algorithmus (derscp
sowieso unter der Haube verwendet würde!)Wenn Ihr Netzwerk nicht zu einem Engpass wird, dann würden Sie Kompression auf dem Draht verwendet werden sollen.
Wenn Ihre Festplatten der Engpass sind, ist das Streaming in eine komprimierte Datei am besten. (zum Beispiel
netcat
von einer Maschine zur nächsten, in die gestreamt wirdgzip -c
)In der Regel ist das Komprimieren einer vorhandenen Datei im Vorfeld verschwenderisch, wenn die Geschwindigkeit entscheidend ist.
TIMTOWTDI, YMMV, IANAL usw.
quelle
Laut diesem Typ ist es möglicherweise nur schneller zu bedienen
rsync -z
, obwohl ich vermute, dass es fast so effizient ist, als würde man jede Datei zuerst komprimieren, bevor man sie überträgt. Es sollte schneller als das Komprimieren des Teerstroms sein, wie von anderen vorgeschlagen.Von der Manpage:
quelle
Da sowohl scp von komprimierten Dateien als auch rsync sehr ähnliche Übertragungszeiten benötigen, ist die "effizienteste Möglichkeit" die direkte Komprimierung und nicht die Komprimierung und Übertragung.
Neben der "Echtheit" umfassen andere Überlegungen:
rsync kann einfach neu gestartet werden, wenn nicht alle Dateien übertragen werden.
Mit rsync können die Dateien auf dem Remotecomputer verwaltet werden.
Für lokales tar oder gzip ist lokaler Speicher erforderlich.
Überlegungen zur Portnutzung sowohl für den Zielcomputer als auch für die Firewalls: 1) scp verwendet Port 22 (standardmäßig), was möglicherweise nicht akzeptabel ist. 2) rsync users port 873 (standardmäßig)
Ich bin nicht sicher, warum Radius erwartet, dass das Originalposter keine entpackten Dateien gespeichert haben möchte.
quelle