Я хотел добавить журнал отладки в сценарий Perl, который я создал как плагин Nagios. Он отлично работает при запуске из командной строки, но когда его вызывает Nagios, «localtime» возвращает время последнего перезапуска демона nagios3 (в данном случае — вчера днем).
Запуск Perl v5.14.2 и Nagios 3.2.3 на Ubuntu Server 12.04 LTS.
сценарий (частичный):
#!/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 были добавлены путем ручного запуска сценария из командной строки. Другие строки являются результатом вызова 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