logrotateを使用してファイルを削除する


13

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

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

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

ベスト、-Iulian


これらのログが必要ない場合は、アプリのログ機能を無効にしないでください。
ディー

1
すみませんが、それを答えとして数えることはできません。好奇心を養うために、デバッグなどのさまざまな操作のためにこれらのログが必要です。単に腐敗させたくないだけです。
ユリアン

回答:


16

その場合、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
}

3

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


2
リンクの腐敗を防ぐために、リンクのみの回答を投稿しないでください。代わりに、リンクから最も関連性の高い情報を回答に追加するか、回答の代わりにリンクをコメントとして投稿してください。詳細については、このヘルプセンターの記事をご覧ください。
スヴェン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.