我想向我作为 Nagios 插件创建的 Perl 脚本添加一些调试日志记录。从命令行启动时它工作得很好,但是当它被 Nagios 调用时,'localtime' 返回上次重新启动 nagios3 守护程序的时间(在这种情况下是昨天下午)。
在 Ubuntu Server 12.04 LTS 上运行 Perl v5.14.2 和 Nagios 3.2.3。
脚本(部分):
#!/usr/bin/perl
use POSIX;
my $result = 0;
my $IP=$ARGV[0];
# actual processing here...
open (LOGFILE, ">>/var/log/nagios3/check_pisystem.log");
print LOGFILE strftime "%F %T%z (%Z)", localtime $^T;
print LOGFILE "," . $IP . "," . $result . "\n";
close (LOGFILE);
运行一段时间后的日志文件内容:10:xx 处的行是通过从 shell 提示符手动启动脚本添加的。其他行是 nagios 调用它的结果,4 个不同的 IP 以 5 分钟的间隔(每个)。
2013-07-29 15:18:24+0200 (CEST),10.3.4.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.3.83,0
2013-07-30 10:24:51+0200 (CEST),10.3.0.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.1.83,1
...
2013-07-29 15:18:24+0200 (CEST),10.3.3.83,1
2013-07-29 15:18:24+0200 (CEST),10.3.1.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.0.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.4.83,0
2013-07-30 10:46:54+0200 (CEST),10.3.0.83,0