web-dev-qa-db-ja.com

TARでファイルをアーカイブしながらGZIP圧縮レートを制御しますか?

コマンドを使用してディレクトリを定期的にバックアップするスクリプトがあります。 "tar -czvf [name] [directory]"ですが、問題はスクリプトがあることです。最近、サーバー(Minecraft SMP)に多くのストレスをかけており、それがバックアップするにつれてプレーヤーが遅れる傾向があります。

それで、それがファイルをアーカイブしてバックアップすると同時にGZIP圧縮率を制御する方法があるかどうかを知る必要がありますか?

私はその後最初にファイルをtar tar tar tar tarを別々に異なる圧縮率で個別にgzipすることができますが、これは現在のサーバー時刻を持つファイルに名前を付けることができず、これはコマンド間で変わります。

どんな洞察?先にありがとう。

3
Alex Bennett

2つのステップでそれをすることはおそらくよりポータブルです。タイムスタンプが必要な場合は、最初に保存してください。

filename=/what/ever/backup-$(date +%Y%m%d%H%M%S).tar
tar cvf $filename ...
gzip -1 $filename
 _

探すこともあなたが Niceionice を探すことをお勧めします。彼らはあなたがサーバーの応答性に関するバックアップの影響を少なくするのを助けることができました。

2
Mat

たぶん少し遅く、これは他人を助けることができます...

定期的に同様のデータをバックアップしている場合は、最初にコピーするだけで(圧縮されていないため、基本的にはTARファイルだけを作成して)、後で後でバックアップコピーを圧縮します。 Minecraftサーバーの場合は、おそらく毎日いくつかのバックアップを作ります。サーバー上の人が多すぎない場合は、毎日、毎日のような強力なアルゴリズムと一緒にこれらのバックアップを圧縮することをスケジュールできます。遅れはもっと長くなりますが、そのポイントは、結果として得られるアーカイブが本当に小さくなることです(ほとんどの世界ファイルのほとんどはバックアップの間には変わらないため)。そして、一部のコア(かなりの可能性が低い)にスペアパワーがある場合は、圧縮はそれを使用します(そして、サーバーの残りの部分には遅れが少なくなります)、おそらくパフォーマンスの向上バックアップ中です。

1
Amunak

私はしばしばこのようなことをするので、tarプロセスが完了したら、それがすべて1行で行われるようにgzipを覚えている必要はありません。

tar cvf - $nameOfDirOrFileToBeBackedUp | gzip -$compressionLevel > $backupLocation/$nameOfDirOrFileToBeBackedUp.tar.gz
 _

このメソッドは、GZIPをサポートしていない古いバージョンのTARで機能します(Solaris 10はまだじゃない)。

0
AndrewPK