presents by IT Consulting 109

Linux – ログローテーション

概要


ログのローテーション手順について記載しています。

 

手順


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:通常ファイルを検索
c:ディレクトリ
l:シンボリック・リンク

-daystart 0時を基準にする

例:00:00基準としてmtimeを確認

-mtime +7 -mtime : データが最後に修正された日

例: 7日以前にデータが修正されている

+:7日移行
-: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 {} \;
この記事を書いた人
名前:TRUE's。 千葉県育ち、神奈川県在住のIT系フリーエンジニア。 IT系のナレッジサイトを不定期で更新中。 フォトグラファー兼エンジニアとして日々勤しんでいる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です