WEB開発備忘録

一定期間経過した不要なログを自動削除する

アプリなどで生成するデイリーのオリジナルログなどを、一定期間経過したら自動削除したい。
ログローテーションさせれば良いんですが、今回はコマンドをcronで実行する方法でまとめます。

まず一定期間を経過したログファイルを一覧表示するコマンド

[prompt] # find ログファイルパス -name '*.log' -mtime +〇

-mtime +〇で指定日数経過したファイル群が抽出表示されます。

これに「–delete」オプションを付ければ、抽出されたファイルが削除されます。
たとえば一週間(7日)経過したログファイル群を削除したければ

[prompt] # find ログファイルパス -name '*.log' -mtime +7

cronに登録すれば、自動ログローテーションの設定完了です。

[prompt] # crontab -e
------------------------
0 2 * * * root /bin/find ログファイルパス -name '*.log' -mtime +181 -delete

この例では、毎日深夜2時に半年経過したログファイルを自動削除するよう設定しました。