ども。 自動でスクリプトを動かしているとちゃんと実行できたかログをとりたくなります。 けど、ログファイルってずっと放置していると膨大なファイルサイズになってしまうことも多々あるんですよ。 そのためにスクリプトを書いて一定期間で破棄したりするんですが、logrotateっていう簡単ログファイル保管ツールがあったのでメモ代わりに。
ログローテーションってやつらしいです。 CentOS6で確認しました。
参考:linux環境におけるのログファイルの保管設定(logrotate)
などのちょっとわがままなことにも対応できちゃいます。
Root権限必要だと思います。sudoやsuコマンドを適宜使用してください。 設定ファイルは/etc/logrotate.dのなかに入っています。移動して表示してみましょう。
cd /etc/logrotate.d ls
httpdやmysqld、syslogなどがこの仕組みを利用していることがわかると思います。 このディレクトリにファイルを作成することで設定ができます。 ためしにmylogという設定ファイルを作ります。
vi mylog
viは「i」で編集モードへ切り替え、「esc」で編集モードを抜けます。 viの使い方
/home/user/www/hogehoge.com/log/にある.logファイルを全て1日ごとに7日間保管したい場合には、記述内容は下記の通りになります。
/home/user/www/hogehoge.com/log/*.log { daily rotate 7 missingok }
「/home/user/www/hogehoge.com/log/*.log」の部分は/home/user/www/hogehoge.com/log/にある.logファイルの指定です。ワイルドカードが使えます。この場合hogehoge.logでもmogemoge.logでもヒットしますがhogehoge.htmlなどはヒットしません。 「daily」は毎日保存していきます。dailyの代わりにweekly(毎週)やmonthly(毎月)が設定可能です。 「rotate 7」の部分は7回繰り返しの指定です。hogehoge.log.2、hogehoge.log.3のように毎回ファイル名が変わっていき指定回数を超えると破棄されます。 「rotate 0」に指定するとrotateされたあとに古いものは削除されます。(※既存のファイルは自動削除されない点に注意) 「missingok」を指定しておけばファイルが見つからなかった場合にもエラーが出ません。
設定完了後は反映させましょう。下記コマンドで設定完了です。(何もメッセージは表示されません。)
/usr/sbin/logrotate /etc/logrotate.conf
実行状況を確認したければ
cat /var/lib/logrotate.status
こんな感じで簡単に毎日ログファイルがとれちゃうね。 エラーがないのがいいんだけど、万が一に備えて見やすいようにしておくのは大切だと思います! ではまた。
コメント 0
トラックバック 0
上に表示された文字を入力してください。
外部からLinuxサーバーへ接続する
【EC2+owncloud】Amazon EC2を使ってみる。
カニモモンガの技術めも 横浜市在住の薬学生Developer. 第100回薬剤師国家試験合格。 卒業してCEOになったよ。 毎日エンジョイしてる。 最近はもっぱらサーバー周りのこととかPHPとか。
return top
コメント 0