私は、毎時、毎時5分にperlスクリプトを実行するためのcrontabセットアップを持っています(つまり、2:05、3:05、10:05など):
5 * * * * perl /abs/path/to/my/script.pl >> /abs/path/two/my/script-log.txt 2>&1
ご覧のとおり、STDOUTとSTDERRの両方を同じログファイルにリダイレクトしています。
Perlスクリプト、crontabエントリのいずれかをリファクタリングするか、必要な新しいコード/スクリプトを追加して、毎晩深夜にscript-log.txt
クリア/フラッシュ/空になるように依頼されました。
つまり、毎晩、深夜にscript-log.txt
20MBのテキストが含まれている場合は、テキストが何も(0バイト)含まれないようにクリーンアップし、午前12:05にcrontabが起動して実行されscript.pl
、同じscript-log.txt
ログファイルにテキストを追加し始めます。
Linux / Perlの魔法を使ってcrontabエントリを変更して、このような「毎日のローリングログファイル」を設定する方法があれば、非常に簡単になります。最悪のシナリオでは、いつでも新しいスクリプトを記述してscript-log.txt
、深夜に実行するようにパージおよびcronすることができます。しかし、私の高官はまだ別のcronジョブを持っていないことを強く望んでおり、エントリ自体からこれを行う方法を探しています(可能な場合)。
実際には、このように機能するエントリが多数あるため、「パージスクリプト」を記述して、深夜に実行するようにクローンを作成する際の問題は、生成する他のスクリプトを追加/削除するときに、パージスクリプトを常に更新することです。これらの種類のログファイル。したがって、このようなパージをエントリレベルで設定できる場合、各cronエントリはそれ自体をクリーンアップします。事前に洞察/ポインタ/提案をありがとう。