並列GPGの生成

並列GPGの生成

大容量のバックアップフォルダをtar、圧縮、暗号化しようとしていますが、gpgがシングルスレッドであると考えているため、プロセスは遅くなります。私はルートフォルダを分割するためにパーティションを使用しようとしました。

これは可能ですか、それとも私が何か間違っていますか?

tar -I pigz -cf - source \
| gpg -c -o destination  --passphrase-file xyz --batch --no-tty --cipher-algo AES256 --compress-algo none --no-options - 2 \
| split --additional-suffix=.tar.part -b 1G - "backup-test" >>/log.out

ベストアンサー1

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

荷物などから取り出す

cat $TARGET/$FILENAME |
  parallel --pipe --recend 'bLoCk EnD\n' -N1 --keep-order --rrs 'gpg --decrypt | xz -d' |
  tar tv

-N1一度に1つのレコードを通過することを確認する必要があります。 GnuPGは複数のマージレコードの復号化をサポートしません。

おすすめ記事