Ich verwende rsync, um ein Repository zu sichern, das täglich viele gz-Dateien enthält, einschließlich vieler neuer. Die rsync-Sicherung verläuft langsamer als erwartet, da diese gz-Dateien nicht mit der Option --rsyncable von gzip erstellt werden (wodurch gz-Dateien wesentlich „rsync-freundlicher“ werden, ohne dass ihre Größe oder Kompatibilität wesentlich zunimmt). Und ich kann das Problem zum Zeitpunkt der Erstellung nicht beheben, da die Dateien von einem Python-Skript (rdiff-backup) generiert werden, das das gzip-Modul von Python verwendet und kein Äquivalent zu gzips --rsyncable unterstützt.
Vor dem Ausführen von rsync kann ich also alle neuen gz-Dateien in den Quelldaten identifizieren (dh neu seit dem letzten Ausführen von rsync). Jetzt möchte ich diese Dateien erneut gzipen, damit sie im rsyncable-Format gzippt werden. Dann kann ich rsync von der optimierten Quelle ausführen.
Ich denke, dies bedeutet, dass jede Datei mit gunzip und dann mit gzip --rsyncable ausgeführt wird, aber ich bin nicht sicher, wie dies auf eine Weise erfolgen soll, bei der kein Risiko besteht, Daten oder Metadaten zu verlieren. Vorschläge dankbar erhalten.
--rsyncable
.
-a
Flag beibehalten. Außerdem hat meine Version von gzip kein --rsyncable
Flag, aber es kommt mit einem Programm namens znew
, das wahrscheinlich für das verwendet werden könnte, was Sie brauchen.
--rsyncable
würde die Verwendung nicht helfen. Ich hatte auf eine Codezeile oder ein kurzes Skript gehofft, das ein gz-Archiv sicher entpacken und es mit neu packen würde --rsyncable
. Aber jetzt ist es nur eine akademische Frage für mich.
--rsyncable
ist, ob die Dateien zwischen den Durchläufen geändert werden undrsync
versuchen, die Änderungen zu senden. Neue Dateien interessieren sich nicht dafür, ob sie rsyncbar sind oder nicht, da siersync
ohnehin alle Daten senden müssen. Werden die Dateien zwischen Rsync-Läufen geändert?