我在perl脚本中执行以下命令。Perl脚本在cron作业内显示不同的行为
#!/usr/bin/perl
my $MPSTAT="/usr/bin/mpstat";
my $GREP="/bin/grep";
my $FREE = "/usr/bin/free";
my $AWK = "/bin/awk";
my $cpu = `$MPSTAT | $GREP all | $AWK '{print (100 - \$12)}'`;
print "CPU is $cpu";
当我手动运行该perl脚本,它变得正常,并提供在%正确CPU使用率执行(100 - 空闲CPU)。
但是,当我将它作为cronjob执行时,它始终打印100 & awk的$ 12看起来是0的值。任何有关cron行为不同的指针都会有所帮助。作为的cron的子运行之间
摆脱'awk'语句并只输出'grep'的整个输出。然后你就可以看到'awk'的输入是否与你期望的不同。 –
如果你从这段代码中删除了'my $',它的有效shell代码。以这种方式编写perl是一件坏事。 – jordanm
@jordanm是的,我同意。但在这里,我刚刚复制了900行Perl脚本中的一小部分。 – pprakash