毎日更新したいゲームファイルがいくつかあり、それらはフォルダーのtar.gzを作成しますが、毎日すべてのファイルの完全なtar.gzを作成する代わりに、チェックする方法を見つけようとしています。ファイルのディレクトリが変更/追加/削除され、アーカイブを更新して、アーカイブを毎日最初から再作成するのではなく、時間とCPUを節約します。これどうやってするの?
私はこれまで運がなかった--listed-incrementedを使おうとしていました。
レベル0バックアップを最初に作成する必要があります:
$ tar --create --verbose --listed-incremental ./game.snar --gzip \
--file game_`date +%F`.tar.gz game/
そして翌日、このコマンドは./game.snar
の作成以降に変更されたファイルのみを圧縮します。
$ tar --create --verbose --listed-incremental ./game.snar --gzip \
--file game_`date +%F`.tar.gz game/
このアーカイブはレベル1バックアップと呼ばれます。
復元する場合は、すべてのアーカイブファイルをフォルダーに入れ、--incremental
オプションを使用して、作成順にそれぞれを抽出します。次のようになります。
$ for t in game_2011-10-2*.tar.gz; \
do tar --verbose --extract --incremental --gzip --file $t; done