綾小路龍之介の素人思考

[linux] 任意のプログラムのログファイルを一般ユーザでlogrotateする。

多くのディストリビューションにおいて、システムのログに関してはlogrotateが上手く処理してくれる。しかし、一般ユーザが動かしているプログラムでも膨大なログファイルを吐く場合がある(例えばチャットログなど)。そんなときはlogrotateすればいい。

まずはlogrotate.confファイルを編集し、以下の内容にする。

$ vi /*******/etc/logrotate.conf
$ cat /*******/etc/logrotate.conf
/*******/.*******/logs/***************.log {
        daily
        missingok
        rotate 100
}

その後にlogrotate.statusを作っておく。

$ touch /*******/lib/logrotate.status

実行テストを行う。-d オプションはdebugモード。confファイルにミスがあったり、statusファイルが存在しないとこのとき注意される。

$ /usr/sbin/logrotate -d -s /*******/lib/logrotate.status /*******/etc/logrotate.conf
reading config file /*******/etc/logrotate.conf
reading config info for /*******/.*******/logs/***************.log

Handling 1 logs

rotating pattern: /*******/.*******/logs/***************.log  after 1 days (100 rotations)
empty log files are rotated, old logs are removed
considering log /*******/.*******/logs/***************.log
  log does not need rotating

実行すると、以下のようになる。これは成功した例。ただし、/*******/.*******/logs/***************.logがまだ1世代しかないので、ローテーションは行われていない。

$ /usr/sbin/logrotate -s /*******/lib/logrotate.status /*******/etc/logrotate.conf
$ cat /*******/lib/logrotate.status
logrotate state -- version 2
"/*******/.*******/logs/***************.log" 2011-2-7
$ ls -la /*******/.*******/logs/***************.log*
-rw-r--r-- 1 **** **** 32324 2011-02-07 07:52 /*******/.*******/logs/***************.log

logroteteはデーモンではないので、実行するだけだとローテーションは1回しか行われない。これを定期的に実行するにはcronを使う。ここで1時間に1回実行させることも可能だが、その場合は-fオプションを使う。

$ crontab -e
0 0 * * * /usr/sbin/logrotate -s /*******/lib/logrotate.status /*******/etc/logrotate.conf

リファレンス

  1. logrotateをユーザー権限で実行する – ぱんぴーまっしぐら
  2. ログファイルローテートの仕組みと扱い方 | CCCeK インフラ本舗
  3. @IT:logrotateのテストを行うには
  4. logrotate によるログのローテーション
  5. logrotate ユーザ - Google 検索
  6. logrotate(8) - Linux man page
  7. logrotate manpage - Google 検索
  8. logrotate cron - Google 検索
  9. Kozupon.com - logrotateの不思議!
  10. ITmedia エンタープライズ : Linux Tips「ログローテートツール「logrotate」を使いこなしたい」
  11. logrotateの設定 - KamoLand
  12. logrotateの基本的な設定 - satospo
  13. 「logrotate」の設定

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-09-20T08:08:02+09:00
  2. Modified: 2009-09-20T08:08:02+09:00
  3. Generated: 2017-01-31T23:09:20+09:00