tar、xz、gpgでGNU並列処理を正しく使用する

tar、xz、gpgでGNU並列処理を正しく使用する

アーカイブの作業を高速化したい場合は、通常23GiB(ブルーレイ1台)のバックアップを実行します。

私はこれを見つけました:GnuPGとGNU Parallelを使用して大容量ファイルの並列暗号化を実行するには?


私はこのコードをまったく理解していないので(使用したことはありませんparallel):

tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
    parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 |
    gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
    pv > $TARGET/$FILENAME

分析に役立つことができる方がいらっしゃると思います。ありがとうございます。

答え1

tarコマンドを実行してくださいtar

--createtar アーカイブを作成します。

--format=posixPOSIX 形式の tar アーカイブを使用します。つまり、POSIX形式をサポートする他のシステムから抽出できます。

--preserve-permissionsファイルに対して同じ権限を維持します。

--same-ownerファイルの同じ所有者を保持します(ルートとして抽出する場合にのみ関連します)。

--directory $BASE/$name$BASE/$name ディレクトリへの変更を開始する前に

--to-stdoutファイルに保存する代わりに、出力をstdoutに送信します。

.フルディレクトリ圧縮

|stdoutを次のコマンドでパイプ

parallel平行

--pipeパイプモードが使用されるため、stdinの入力は実行中のコマンドへのstdinの入力として提供されます(通常モードのコマンドライン引数の代わりに)。

--recend ''通常、GNUパラレルは\ nに分割されます。入力はテキストではなくバイナリデータなので、無効にします。

--keep-order2番目のコマンドが最初に完了しても、2番目のコマンドの出力の前に最初のコマンド実行の出力を印刷する必要があります。

--block-size 128M128MBのデータブロックをコマンドに渡します。

"..."実行するコマンド

|stdoutを次のコマンドでパイプ

pvデータがどれだけ早く転送されるかを示します。

> $TARGET/$FILENAME標準出力を$TARGET/$FILENAMEにリダイレクト

GNU Parallel は、128MB ブロックごとに次のコマンドを開始します。

xzコマンドxz

-9圧縮レベル9

--check=sha256ビットエラー(欠陥のあるディスクなど)をキャッチできるように、出力に整合性チェックを含めます。

|stdoutを次のコマンドでパイプ

gpgGNUプライバシーコマンド

--encryptstdinでデータを暗号化する

--recipient $RECIPIENT$RECIPIENT キーを使用した暗号化

;コマンド区切り記号

echo bLoCk EnD印刷ブロックの終わり

関連情報