我在 perl 脚本中执行以下命令。
#!/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 脚本时,它会正确执行并以 % (100 - Idle CPU) 为单位提供正确的 CPU 使用率。
但是当我将它作为一个 cronjob 执行时,它总是打印 100 并且 awk 的 12 美元似乎得到了 0 的值。任何关于它为什么在 cron 中表现不同的指针都会有所帮助。