・既存のログに変化があればそれを検知したい。 ・既に走っているログがあり、リアルタイムに分割したいがシステムを停止できない。 といった場合、どうしましょう。 既存のログを監視するプログラムを作成してみました。 ローテート対策がしてあります。 使い方: lw.pl
#!/usr/local/bin/perl use strict ; require 'logwatch.pl' ; my $lw = new logwatch('/var/log/messages', 'TAIL') ; # 第 2 パラメータを省略した場合、最後尾からの監視となります while (1) { my @buf = $lw->get ; for ( my $i = 0 ; $i < @buf ; $i ++ ) { print "$buf[$i]\n" ; } sleep 1 ; # 必ず何秒かのスリープを入れること! } |