ログのローテーション手順について記載しています。
1.コマンドラインで削除する手順
次のコマンドを実行します。
※例:[ /var/log/ ] にある [ messages ] のアーカイブから7日以前のファイルを削除するコマンド。
find /var/log/ -name 'messages-*' -type f -daystart -mtime +7 -exec rm {} \;
find /var/log/ | 指定したディレクトリ配下を検索
例:/var/log/配下を検索 |
-name ‘message-*’ | 削除するパターンを指定
例:「messages-」にマッチするファイル/ディレクトリ |
-type f | 指定したファイルタイプを検索
例:通常ファイルを検索 f:通常ファイルを検索 |
-daystart | 0時を基準にする
例:00:00基準としてmtimeを確認 |
-mtime +7 | -mtime : データが最後に修正された日
例: 7日以前にデータが修正されている +:7日移行 |
-exec rm | 指定したコマンドを実行
例:ファイルを削除 rm : 削除
|
2.スケジュールで削除する手順 ※例として cron を使用
次のコマンドを実行します。
vi /etc/cron.d/logrotation
実行結果
"/etc/cron.d/logrotation" [新ファイル]
新規ファイルに以下の値を設定して保存します。
※例:上記コマンドを毎日 [ 00:05 ] に実行する。
5 0 * * * root find /var/log/ -name 'messages-*' -type f -daystart -mtime +7 -exec rm {} \;
事前に削除されるファイルを確認したい場合は、[ echo ] を付与します。
※対象が表示されますが実際に削除されません。
find /var/log/ -name 'message-*' -type f -daystart -mtime +7 -exec echo rm {} \;