Wie benutze ich 7z, um über ein Rohr zu komprimieren?

16

Ich verwende dies zum sicheren Erstellen von Backups (? - Ist es wirklich sicher? Mit einem guten Passwort?):

# ENCRYPT
ORIGDIR="DIRECTORYNAMEHERE"; tar cvf - "${ORIGDIR}/" 2>/dev/null | gzip -9 - 2>/dev/null | openssl aes-256-cbc -salt -out "${ORIGDIR}.tar.gz.aes"

# DECRYPT
openssl aes-256-cbc -d -salt -in "ENCDIRECTORYNAMEHERE" | tar -xz -f -

F: Aber wie kann ich das mit 7z mit maximaler Komprimierungsrate machen?

Es ist nicht gut, temporäre Dateien neben der einzigen OUTPUT-Datei zu erstellen, da ich zum Komprimieren von Dateien / Verzeichnissen mit einer Größe von ~ 100 GByte auf einem 180-GByte-FS nicht genügend freien Speicherplatz hätte (wenn zum Beispiel die komprimierte Datei ~ 60 GByte benötigen würde) GByte).

Gasko Peter
quelle

Antworten:

6

Gibt es einen Grund, den Sie 7zspeziell verwenden möchten , oder möchten Sie einfach eine bessere Komprimierung als gzip?

Das xzDienstprogramm verwendet den gleichen Komprimierungsalgorithmus wie 7z(LZMA) und ermöglicht die Pipe-Komprimierung wie gzip.

tar cvf ... | xz -9 | openssl ...
David Baggerman
quelle
Der Grund, warum ich persönlich speziell 7z brauchte, ist die Möglichkeit, auf mehrere Volumes
aufzuteilen
1
xz war zu diesem Zeitpunkt noch kein Multithread-Computer (möglicherweise noch nicht), sodass es auf einem
Multicore
25

Dies wird in der Manpage von 7z behandelt:

-si    Read data from StdIn (eg: tar cf - directory | 7z a -si directory.tar.7z)
Wieland
quelle
Kann ich ein "|" und weiterverarbeiten nach dem 7z?
Gasko Peter
4
Sie können -sodie komprimierten Daten mit stdout anstelle einer Datei sichern.
Wieland
1

So erstellen Sie schnell eine Remote-Sicherungsvorbereitungsdatei für alle meine Startskripts:

# Scripts backup
ls ~/*.sh | cpio -ov | 7z a -si ~/Documents/SCRIPT_BACKUP_30062017.cpio.7z
# Scripts restore
7z x -so ~/Documents/SCRIPT_BACKUP_30062017.cpio.7z | cpio -iv   

Der Grund, warum ich mein "Heimat" -Stammverzeichnis nicht sichern kann, ist, dass ich nur einige Verzeichnisse synchronisiere und versende. Beachten Sie, wie cpio beim Wiederherstellen nach neueren Dateien sucht. Das ist mächtig. Ihre Arbeit wird nicht überschrieben.

Knospe@

Will Budic
quelle
-1

habe es gerade zum Laufen gebracht, postgres pgdumpallin eine 7zip-Datei: benutze set pgpassword=xxxxxvor der Ausgabe des Befehls:

pg_dumpall -U postgres | c:\"program files"\7-Zip\7z.exe a -si e:\directory\output.file.sqlc

Es dauerte nur 4 Tage, bis es abgeladen und komprimiert wurde! 50201104790 Bytes (47 GB)

klmbear
quelle