[シェル] cronでログを定期的に削除する

スポンサーリンク
シェル

背景

keycloakで毎日ログが生成されているのですが、削除もされずにほったらかしでしたので、cronで削除することにしました。

要件

やりたいことは、以下の通りです。

  • 毎日作成される「access.yyyy-mm-dd.log」の削除
  • 毎日作成される「server.log.yyyy-mm-dd」の削除
  • 上記2種類のログは、直近30日分は保持する
  • 毎日12時0分に削除が実行されるようにする

設定内容

では、設定内容です。

①crontab -e でクーロンの設定を開く。

②毎日、0時0分に「access.log」と「server.log」が削除されるように登録する。
※「/xxx/xxx/xxx」には、対象となるディレクトリを指定してください。

0 12 * * * find /xxx/xxx/xxx -type f \( -name 'access*.log' -o -name 'server.log*' \) -mtime +30 -delete

以上です。簡単です。

補足

find・・・ファイルやフォルダを検索するコマンド
-type f ・・・属性がファイルのものに限定するオプション
-name・・・ファイル名を検索するオプション
-o・・・検索したいファイル名が複数あるときに利用するオプション、ORの意味
-mtime x・・・現在からx日前以降を指定するオプション
-delete・・・検索結果のファイルを削除するオプション

コメント

タイトルとURLをコピーしました