7zを使用してパイプ経由で圧縮する方法


16

バックアップを安全に作成するためにこれを使用しています(?-それは本当に安全ですか?良いパスワードで?):

# 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 -

Q:しかし、最大圧縮率で7zを使用してこれを行うにはどうすればよいですか?

180ギガバイトのFSで〜100ギガバイトのサイズのファイル/ディレクトリを圧縮する必要がある場合、十分な空き領域がないため(たとえば:圧縮ファイルは〜60 GByte)。

回答:


6

7z具体的に使用したい理由がありますか、それとも、より優れた圧縮が必要gzipですか?

このxzユーティリティは7z(LZMA)と同じ圧縮アルゴリズムを使用し、パイプ圧縮と同じ圧縮を許可しますgzip

tar cvf ... | xz -9 | openssl ...

私は個人的に、具体的7zの必要な理由は、複数のボリュームに分割する機能です
Unirgy

1
xzはその時点ではマルチスレッド化されていなかったため(まだそうではないかもしれません)、マルチコアコンピューターでは7zよりもはるかに遅くなる可能性があります
Xen2050

25

これは、7zのマニュアルページで説明されています。

-si    Read data from StdIn (eg: tar cf - directory | 7z a -si directory.tar.7z)

「|」を入れてもいいですか そして7zの後にさらに処理しますか?
ガスコピーター

4
-so圧縮データをファイルではなくstdoutにダンプするために使用できます。
ウィーランド

1

すべてのホームスクリプトのリモートバックアップ準備ファイルをすばやく作成するには、次を使用します。

# 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   

「ホーム」ルートをバックアップしないのは、特定のディレクトリのみを同期して送信するからです。cpioがどのようにスキップして、復元時に新しい既存のファイルをチェックするかに注意してください。これは強力です。あなたの仕事は上書きされません。

bud @


-1

動作するようになった、postgres pgdumpallを7zipファイルに:set pgpassword=xxxxxコマンドを発行する前に使用:

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

ダンプして圧縮するのに4日かかりました!50201104790バイト(47GB)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.