ログの監視ツールとして定番中の定番swatch。
最近はrsyslogかsyslog-ngに移行しているので、使うケースも減っていますが、柔軟で使いやすいツールです。
ただtailでログを監視しているゆえの制限があったりもします。
- ファイル更新の確認の間隔(–sleep-interval)が最小でも1秒かかる
- 確認の間隔が短かければ、余計な負荷になりそう
上記が大きいとるかは環境によりますが、そんなときにはtailの代替としてinotailを検討してみます。inotifyの特徴は次の通りです。
- linuxのinotify API を通じてカーネルから送信される特別なイベントを受信することで更新情報を取得する。
- tailより使用メモリが少ない
- linux専用という制限がある
ps auxでは下記のようになりました。環境はDebian lenny(i386)です。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2765 0.0 0.2 3040 544 pts/0 S+ 04:56 0:00 tail -f /var/log/syslog root 2786 0.0 0.1 1748 372 pts/2 S+ 04:57 0:00 inotail -f /var/log/syslog
それでswatchでinotailを使う方法は簡単です。
$ swatch --tail-program-name /usr/bin/inotail