我需要使用perl脚本运行这个命令,使用system.This代码行不是working.do你知道为什么吗?
system("ping -w 300 -i $interval $host \| sed 's/\(.*\)/\$(date +%F\ %T) \1/g' >> $ test" )
发布于 2018-06-08 11:16:50
你的程序充满了代码注入错误。
在使用夏令时的地方,使用本地时间作为时间戳而不包括时区信息(例如,与UTC的偏移量)是有问题的。
以下是解决这些问题的解决方案:
use POSIX qw( strftime );
use String::ShellQuote qw( shell_quote );
open(my $fh_log, '>>', $test)
or die $!;
open(my $pipe, '|-', "ping", "-w", "300", "-i", $interval, "--", $host)
or die $!;
while (<$pipe>) {
my $ts = strftime("%Y-%m-%dT%H:%M:%S%z", localtime);
print($fh_log "[$ts] $_");
}
发布于 2018-06-08 01:13:23
my $ping_check =`ping -w 300 -i $interval $host | while read line; do echo \`date \+%F%T\` - \$line >> $logfile; done `;
使用下面的代码行,我能够获得我需要的东西
https://stackoverflow.com/questions/50745832
复制相似问题