我正在使用一个简单的Perl脚本来监视使用File::Tail
模块的日志文件,但我似乎无法让模块正常工作。
这个想法是在IRC上使用它,但是这似乎没有用,所以在修改了交互式解释器之后我将问题缩小到了File :: Tail。我已经将它剪切下面的基本示例来监视文件,当新条目附加到文件时没有任何反应:
#!/usr/bin/perl -w
use strict;
use File::Tail;
my $file = File::Tail->new("/var/log/apache2/error.log");
while(defined(my $line = $file->read))
{
print "$line\n";
}
有谁可以提出问题可能是什么?我已经浏览了perldoc条目,这实际上是从那里复制的,所以我不能真正看到我犯了任何明显的错误。我正在运行Ubuntu Lucid。
答案 0 :(得分:2)
这可能是权限错误吗?您运行脚本的用户可以访问/var/log/apache2/error.log
吗?
答案 1 :(得分:0)
如果所有其他方法都失败了,请自行实施!
use Fcntl qw(:seek);
while (1) {
while (<$fh>) {
...
}
sleep(1);
seek $fh, 0, SEEK_CUR;
}
答案 2 :(得分:0)
我刚刚意识到我是一个完整的工具......
它完美无缺 - 我只是在按下Ctrl-C之前没有留足够长的时间。 D'哦!嗯,经验教训!无论如何,谢谢你的帮助!