CentOS 6.3システムには、次のように毎日のログ(非常によく似たコンテンツを含むテキストファイル)を生成する複数のアプリケーションがあります。
/data/logs/app/my-2014-06-29.log
/data/yet_another_app/logs/catalina.20140629
/data/in_fact/there_are/around_500_such_paths/2014-06-29-1.log
私はこのログを5年間保管する必要があります。現在は伝統的なUnix方式で処理しています。つまり、所定の位置に圧縮するだけです(例.log.bz2
:)。しかし、まだ多くのスペースを占めることは満足のいくものではありません。最初に圧縮してから、後で圧縮すると多くのスペースを節約できそうです(1年分のログを保持できる巨大な.zipファイルを考えてみてください)。
必要:
RHEL コーシャ
「ソースからコンパイル」しないでください。 .rpm形式で配布するのに十分な成熟していない場合は、私には適していません。
grep
アーカイブは再帰的なgrep(たとえばgrep -rli
)を受け入れる必要があります。
grep_my_zip -rli pattern /this/and/that/wildcards/2014-06-*
grepingの場合、アーカイブはすべてのアイテムを解凍してはいけません。ワイルドカードと一致するファイルのみを解凍する必要があります。
追加
毎週ファイルを入れます同じファイルシステムからアーカイブして削除します。
append_and_remove $( find /this/and/that -name '*.log' -type f -mtime +31 ) # weekly log cleaning job
これは毎週のアーカイブではなく、毎週大きな年間アーカイブに追加したいと思います。
マイクロソフトウィンドウアクセス
アーカイブは主にCentOS Linux上で実行されていますが、緊急の目的でWindows上で単一のファイルを検索することも許可する必要があります(したがって、squashfsスタイルのファイルシステムは実行可能なオプションではありません)。
オプション(追加事項ですが必須ではありません)
- 追加はスペース効率的でなければなりません。古いログファイルが現在のログファイルと非常に似ていることを考慮すると
- 毎週の作業のためのlogrotate統合
- Windows用grep_my_zip
- アーカイブは追加だけでなく更新も可能です(書き込み可能など)。
もともと公開この貧しい弟のために
答え1
さまざまなコンプレッサーの私の研究は、スペースを節約するためにフレームワークに縛られない道を行く価値がないことを示しています。
- 8800M圧縮解除された隔週入力(5842ファイル)
- 270Mだけbzip2(伝統的なlogrotateスタイル - 別の.log.bz2ファイル)
- 257M tar bzip2
- 400Mジッパー
- 132M p7zip(Windows .7zと互換性があります)
- 140Mタールxz
- 129M tar lrzip