perl如何监控文件

发布网友 发布时间:2022-04-25 06:21

我来回答

1个回答

热心网友 时间:2023-11-02 17:39

1)产生变化内容的程序例子(genlog.pl)
CODE:

use IO::Handle;
open (FD, "> /tmp/test.log") or die $!;
FD->autoflush(1);
while (1) {
my $now = time;
print FD $now, "\n";
sleep 1;
}
close FD;
这个小程序在/tmp目录下产生一个test.log的临时文件,并且每隔1秒写入当前时间的unix 时间戳

因此用普通的tail命令可以看到/tmp/test.log的内容是不断增长的。要注意的是红色的那行将

文件描述FD设置为自动冲刷(缓冲区),因此凡是写入的信息都立刻同步到磁盘,如果没有这行

那么写入的内容不能立刻反应到test.log里。

下面我们来设计一个读取这个增长内容的小程序。

2)perl版tail
CODE:

open (FD, "< /tmp/test.log") or die $!;
while (1) {
my $in = <FD>;
print $in;
}
close FD;
这个程序更简单。只要可读,将不断的读取/tmp/test.log的内容。通过这2个小程序,就演示了

如何监视不断增加的日志的方法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com