アーカイブの作業を高速化したい場合は、通常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
。
--create
tar アーカイブを作成します。
--format=posix
POSIX 形式の tar アーカイブを使用します。つまり、POSIX形式をサポートする他のシステムから抽出できます。
--preserve-permissions
ファイルに対して同じ権限を維持します。
--same-owner
ファイルの同じ所有者を保持します(ルートとして抽出する場合にのみ関連します)。
--directory $BASE/$name
$BASE/$name ディレクトリへの変更を開始する前に
--to-stdout
ファイルに保存する代わりに、出力をstdoutに送信します。
.
フルディレクトリ圧縮
|
stdoutを次のコマンドでパイプ
parallel
平行
--pipe
パイプモードが使用されるため、stdinの入力は実行中のコマンドへのstdinの入力として提供されます(通常モードのコマンドライン引数の代わりに)。
--recend ''
通常、GNUパラレルは\ nに分割されます。入力はテキストではなくバイナリデータなので、無効にします。
--keep-order
2番目のコマンドが最初に完了しても、2番目のコマンドの出力の前に最初のコマンド実行の出力を印刷する必要があります。
--block-size 128M
128MBのデータブロックをコマンドに渡します。
"..."
実行するコマンド
|
stdoutを次のコマンドでパイプ
pv
データがどれだけ早く転送されるかを示します。
> $TARGET/$FILENAME
標準出力を$TARGET/$FILENAMEにリダイレクト
GNU Parallel は、128MB ブロックごとに次のコマンドを開始します。
xz
コマンドxz
-9
圧縮レベル9
--check=sha256
ビットエラー(欠陥のあるディスクなど)をキャッチできるように、出力に整合性チェックを含めます。
|
stdoutを次のコマンドでパイプ
gpg
GNUプライバシーコマンド
--encrypt
stdinでデータを暗号化する
--recipient $RECIPIENT
$RECIPIENT キーを使用した暗号化
;
コマンド区切り記号
echo bLoCk EnD
印刷ブロックの終わり