web-dev-qa-db-ja.com

logrotateでファイルを削除する

Logrotateを実際にローテーションせずに使用して、ディレクトリ内のログファイルを削除することは可能ですか?次の形式でログを生成するアプリがあります:app.log.DD_MM_YYYY。 logrotateに次の設定があると失敗します:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

ログローテーションはこれを行うことができますか、それともスクリプトを作成してそれをcron内に配置するだけですか?

ベスト、-イリアン

13
Iulian

その場合、postrotateを使用することをお勧めします。以下の例では、postrotateはログがローテーションされてから1日より古いファイルを削除します。ニーズに合わせて自由に変更してください。

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
17
Deeh

Logrotateの目的は、カスタムの時間間隔でログファイルのカスタム数を維持することです。タスクにはcronを使用します。ここでlogrotateを使用して実行できることの詳細: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

4
Alex