2013-06-27 6 views
5

私は、ログファイルの圧縮されたアーカイブを維持する必要があります。ログファイル名は一意であり、一度展開されると、アーカイブはすべてのログファイルを含む1つのディレクトリに過ぎません。追加可能な圧縮されたアーカイブ

gzipped tarファイルが含まれているため、現在のソリューションはスケーリングに問題がありません。ログファイルが追加されるたびに、まずアーカイブ全体を解凍し、ファイルを追加してからgzipを再実行します。

完全に展開せずに再圧縮することなく圧縮アーカイブに追加できるUnixアーカイブツールはありますか?あるいは、適切な引数の組み合わせがあれば、gzipでこれを実行できますか?

答えて

2

追加可能な圧縮ファイルのアーカイブを作成するのは簡単です(ただし、追加可能な圧縮アーカイブと同じではありません)。

tarは、あなたがアーカイブに追加する前に、ログファイルにgzipことができ、更新を続けることができ、アーカイブの最後にファイルを追加するためのオプション(あなたがGNUのtarを持っていると仮定すると)

-r, --append 
     append files to the end of an archive 

を持っています新しいファイルでアーカイブを追加(追加)します。

$ ls -l 
foo-20130101.log 
foo-20130102.log 
foo-20130103.log 
$ gzip foo* 
$ ls -l 
foo-20130101.log.gz 
foo-20130102.log.gz 
foo-20130103.log.gz 
$ tar cvf backup.tar foo*gz 

今あなたがアーカイブに追加する別のログファイルを持っている:あなたはtarを使用する必要がない場合

$ ls -l 
foo-20130104.log 
$ gzip foo-20130104.log 
$ tar rvf backup.tar foo-20130104.log 
$ tar tf backup.tar 
foo-20130101.log.gz 
foo-20130102.log.gz 
foo-20130103.log.gz 
foo-20130104.log.gz 
関連する問題