複雑なログディレクトリでlogrorateを使用する

複雑なログディレクトリでlogrorateを使用する

アプリケーションには、大量のログ出力が作成されるログ ディレクトリがあります。このログ ディレクトリ内のファイル構造は次のようになります。

localhost:/var/log/myapp # ls

appClient22334.a    appClient22336.a    appClient22338.a
appClient22334.b    appClient22336.b    appClient22338.b    
appClient22334.c    appClient22336.c    appClient22338.c
appClient22335.a    appClient22337.a    appClient22339.a
appClient22335.b    appClient22337.b    appClient22339.b
appClient22335.c    appClient22337.c    appClient22339.c

アプリケーションは毎日何百ものファイルを生成し、それらはすべて保存されます。数字は増加します。

ほとんどの場合、私は logrotate を使用して毎日ログ ファイルを保存および圧縮していますが、この場合、これをどのように実行できるかわかりません。

理想的な解決策は次のようなものでしょう

appClient.20120324.gzip
appClient.20120325.gzip
appClient.20120326.gzip

logrotate を使用しながらこれを実行できるかどうか (おそらく賢い使用方法でしょうかprerotate?)、または特定の bash スクリプトを記述する方が高速/簡単かどうか、誰か私を正しい方向に導いてもらえませんか?

答え1

物事をシンプルにするために、私は毎日 cron ジョブを実行し、昨日のログ ファイルを 1 つのファイル (例: yesterday.log) に連結し、成功したらそれらを削除し、次に logrotate を実行してそのファイルの名前を変更して圧縮します。logrotate を使用してすべてのタスクを強制的に実行できるかもしれませんsharedscriptsが、そうは思えませんし、それを理解しようとして時間を無駄にすることもないでしょう。

関連情報