ログのローテート

ログのローテート」とは、ログ・ファイルが肥大化する前にログ・ファイルを一定期間毎に入れ替えて肥大化を防ぐこと。
例えばlog4jにはデフォルトでローテート機能がついている。
ローテート専用のツールとしては以下がある。
■rotatelogs
Apacheにはログローテーションを行う独自のプログラムが付属している。それが「rotatelogs」である。
 rotatelogsは、Apacheのバイナリが格納されているディレクトリ(通常は/usr/local/apache/bin)に用意されており、その設定はhttpd.confで行う。具体的には「TransferLogディレクティブ」を使う。
管理する世代数を設定しない。そのため、切り出したログファイルは管理者の手で消されるまでディスク上に保存されることになる。
切り出し後のログファイルをログファイルをクリアしない。
■logrotate
Linuxの通常「/usr/sbin」以下に用意されていて、「/etc/logrotate.conf」の内容に従って動作する。ただし、/etc /logrotate.confの設定を書き換えただけではlogrotateは動かない。実際にログをローテーションさせるためには、cronなどを使ってlogrotateを定期的に呼び出してやる必要がある。とはいえ、Linuxを導入した時点でcronの設定も行われているから心配は要らない。
logrotate.confで指定した世代数(rotateで指定)を超えると、それより古いものは自動的に削除する。
切り出し後のログファイルをクリアする。
■cronolog
Apache 2 系のrotatelogs をもう少し多機能にしたログローテートのプログラム。
■newsyslog
FreeBSD では標準でついてくる。
newsyslog の設定は /etc/newsyslog.conf でおこなう。
んー・・・。
この中じゃユーザ権限でインストール可能なツールがなさそうだ。
自分でシェル組むしかないかなぁ。