php crontab -l显示命令行的不同结果

时间:2014-05-20 14:35:58

标签: php ubuntu amazon-ec2 crontab

我创建了一个文件名' testCrontab.php'在amazon ec2上的/ var / www / html文件夹中,基于ubuntu,

$output = shell_exec('crontab -l');
var_dump($output);

问题是当我在浏览器中调用此文件时显示

  

string(207)" 0 0,6,12,18 * * * / usr / bin / php /var/www/html/testExec.php 0 3 * * * / usr / bin / php / var / www / html / testCrawlback.php 0 4 * * * / usr / bin / php /var/www/html/testInsertCard.php * * * * * NEW_CRON * * * * * NEW_CRON"

我猜测那些NEW_CRON来自我测试从php插入一个新的cron, 但是当我通过发出/usr/bin/php /var/www/html/testCrontab.php从命令行调用此文件时,它显示

  

string(169)" 0 0,6,12,18 * * * / usr / bin / php /var/www/html/testExec.php   0 3 * * * / usr / bin / php /var/www/html/testCrawlback.php   0 4 * * * / usr / bin / php /var/www/html/testInsertCard.php"

此外,命令crontab -l会导致后一个输出。

请帮助我了解这里发生的事情。

1 个答案:

答案 0 :(得分:0)

结果会有所不同,因为当您通过浏览器执行脚本时,用户将是www-datanobody。它将显示该用户的crons。如果从命令行执行脚本,它将显示该特定用户的crons。

修改

为webuser设置cron

sudo crontab -u webuser -e

列出webuser的crons

sudo crontab -u webuser -l

webuser将为nobodywww-dataapache

您可以通过从网络浏览器执行以下代码来找到它。

 <?php $output = exec('whoami'); 
    echo $output;
 ?>