背景
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・・・検索結果のファイルを削除するオプション
コメント