2016-08-29 5 views
0

バックアップする現在のスクリプトは圧縮なしでtarだけを使用します。バックアップサーバでpigzを使用するバックアップスクリプト

tar -cvf - . | ssh [email protected] "cat > ~/vps/v16/vzpbackup_${CTID}_${HNAME}_${TIMESTAMP}.tar" 

新:私たちは、しかし、我々はバックアップサーバ

現在に発生するこれらのバックアップを圧縮するCPU使用率を必要とするバックアップを圧縮する必要がある

tar -cvf - . | ssh [email protected] "cat > ~/vps/v17/vzpbackup_${CTID}_${HNAME}_${TIMESTAMP}.tar" ; ssh [email protected] "cd ~/vps/v17/; tar --use-compress-program=pigz -cvf vzpbackup_${CTID}_${HNAME}_${TIMESTAMP}.tar.gz vzpbackup_${CTID}_${HNAME}_${TIMESTAMP}.tar" 

することのより良い方法はありますこれを達成する?

答えて

1

はい。あなたはオンザフライ圧縮することができます:

tar -cvf - . | ssh [email protected] "pigz > ~/vps/v17/vzpbackup_${CTID}_${HNAME}_${TIMESTAMP}.tar.gz" 

は背景:あなたはすでに管を介してtarファイルを送信するので、あなただけの受信機側のパイプで連結されたデータを圧縮する必要がある - そしてあなたがで終わります圧縮されたtarファイル

質問の "新規"スクリプトは、圧縮されていないtarファイルを含むtarファイルを作成します。これはおそらくあなたが望むものではありません。

+0

問題の変数がすべて 'eval'セーフであることが確実でない場合は、' printf%q'を使用してリモートコマンドをフォーマットする方が良いかもしれません。もし何とか 'HNAME = '$(rm -rf $ HOME)''で終わってしまったら、それはあまり美味しくありません。 –

+0

例: 'printf -v cmd 'pigz>〜/ vps/v17​​/vzpbackup_%q_%q_%q.tar.gz'" $ CTID "" $ HNAME "" $ TIMESTAMP "; tar -cvf - 。 | ssh [email protected] "$ cmd" ' –

関連する問題