tar mit gzip Option - wie compression ratio angeben?

michaelffm

Well-Known Member
Hi,

zzt ziehe ich jeden Tag ein Backup eines Laufwerks via
tar --create --gzip --file /path/to/source /mnt/backup/backup.tar.gz

Leider nutzt diese Methode den gzip Default Kompression ratio (6?) - ich möchte jedoch maximale Kompression nutzen.

Leider finde ich keine Möglichkeit, tar neben der -gzip Option ein Compressionlevel mitzugeben.

Hat da jemand einen Tip?

Danke und Gruß
 
Das steht in der Manpage: --gzip:compression-level=N

Allerdings habe ich da einen guten Tipp für dich: gzip ist eine Kombination zweier relativ primitiver Algorithmen und komprimiert generell eher schlecht. xz hingegen setzt auf den LZMA2-Algorithmus. Der kann zwar Rechenleistung ohne Ende verbrennen, aber in den niedrigen Kompressionsraten ist xz dennoch schneller als gzip und komprimiert trotzdem besser. "xz -3" oder halt "tar -gzip:compression-level=3 cfJ ..." dürfte kaum langsamer als gzip sein, aber eine deutlich höhere Kompressionsrate erzielen. Hat man eine Mehrkern-CPU, kann man auch durch eine Multithread-Implementierung von xz pipen, was es nochmal drastisch beschleunigt.
 
XZ ist stream basiert und lässt sich deswegen nur schlecht (auf kosten des Compressionratio) parallelisieren. BZIP2 mag zwar als langsam verschrien sein und nicht ganz so gut sein wie XZ dafür lässt es sich als blockbasierter Algorithmus besser parallelisieren. Mit archivers/pbzip2 kann man auch einen 8 Kerne auslasten. Teste mal ob nicht besser ist Hyperthreading nicht aus zu nutzen (nur $n/2 Threads nutzen). Ich könnte mir gut vorstellen das die Threads sich gegenseitig aus dem L2 Cache schmeissen.
 
bzip2 oder gzip -v -z --best

best=9

Wenn du -h aufrufst steht doch alles.

Ich würde einfach durchprobieren was besser ist, xz macht die beste Kompression ~25 bis 30% kleiner wie gzip oder bzip2
, danach ist bzip2 auf Platz2, bzip2 ist sehr zuverlässig und schneller wie xz. Mußt einfach mal alle durchprobieren und was paßt.
Gruß
 
Wenn du -h aufrufst steht doch alles.
Die gzip Parameter kenne ich alle. Ich suche ja war für tar. Und da steht zwar alles in der Manpage, aber man muss erstmal rausknobeln, dass tar die Parameter in genau einer bestimmten Reihenfolge haben möchte, die sich dann auch noch ändert, wenn ich mit compression-level arbeite.
 
brauchst du den tar, tar faßt doch nur mehrere Inhalte zusammen. Du kannst genau so gut dein Backup in einen Ordner kopieren und ihn in den Backofen schieben. tar bringt keine Kompreesionsvorteile, tar dient nur dazu mehre Ordner oder Inhalte zusamnen zu führen oder diese Struktur beizubehalten, sonst bringt tar nichts.

Gruß
 
tar kann kein Kompressionslevel, vieleicht sollte er die Anweisung einfach anders umsetzen:
for a in `gzip -vz -9`
to
tar --meine Option ${a} /zu meinem Backup oder was es werden soll.
 
Zuletzt bearbeitet:
tar kann ich aber einmal die zu verwendende Kompressionsart und jetzt auch den zu verwendende Kompressionslevel mitgeben, so bekomme ich ein fertiges tar.gz oder tar.xz etc... raus
Und tar brauch ich schon, da ich die Struktur inkl. Berechtigungen erhalten muss.

Ich benutze halt tar - wobei ich jetzt gar nicht getestet hab, ob es Performanceunterschiede zwischen tar mit Kompressionsparameter oder nur "taren" und das Ergebnis in gzip reinpipe gibt
 
okay, das ganze mußt du einfach ausprobieren, alle Kompressiondinger, bzip2,gzip und xz habne Vor.- und Nachteile und das ganze kann von Maschine zu Maschine Anwendungsbedingt gut oder schlecht sein. xz brauch bei -9 einen Sack CPU-Kerne als Besipiel und das ganze geht auch nicht flott. Das ganze mußt du einfach durchprobieren und für dich entscheiden.

Du kannst ja oben das probieren,

Gruß
 
Zurück
Oben