[使用cron执行shell命令的奇怪PHP行为

问题描述 投票:0回答:1

我有一个很奇怪的问题。我正在使用以下代码使用top

保存蛤CPU的CPU值
<?
$clamd_load=rtrim(shell_exec("/usr/bin/top -n1 -b -c | grep \"bin/[c]lamd\" | grep -E -io \" [0-9]{1,3}[.][0-9]{1}[ ]{2}[0-9]{1,3}[.][0-9]{1} \"  | awk '{print $1}'"));
if ($clamd_load!=""){
shell_exec("echo \"-$clamd_load-\" >> /tmp/clamd_cpu");
}
?>

如果我从控制台执行此php脚本,它将正确运行并返回正确的$ clamd_load值

如果我使用root cron执行此php脚本,则脚本仅保存此内容

--
--
--

返回一个空的$ clamd_load。如果从控制台运行脚本,为什么脚本返回正确的$ clamd_load值;如果使用root cron运行相同的脚本,为什么$ clamd_load不返回任何值。

我经常以cron的身份运行php脚本(脚本中带有shell命令),但我从未见过此问题。如果我使用ps而不是top命令,它将起作用。为什么不应该使用root cron在我的php脚本中执行top?

php linux cron
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.