アプリケーションには、大量のログ出力が生成されるログディレクトリがあります。ログディレクトリのファイル構造は次のとおりです。
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を使用している間(おそらくそれを使用する賢明な方法でしょうか?)これを行うことができますか、または特定のbashスクリプトを書くのがより速くて簡単な場合は、prerotate
誰かが私を正しい方向に導くことができますか?
答え1
作業を簡単にするために、昨日のログファイルをファイル(たとえば昨日.log)にリンクし、成功した場合に削除する毎日のcronジョブを実行し、logrotateを実行して(再)名前を指定してファイルを圧縮します。 。フルタスクを実行するためにforce logrotateを使用することもできますがsharedscripts
、私はそうは思わず、それを見つけようとする時間を無駄にしません。