我创建了一个文件名' 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
会导致后一个输出。
请帮助我了解这里发生的事情。
答案 0 :(得分:0)
结果会有所不同,因为当您通过浏览器执行脚本时,用户将是www-data
或nobody
。它将显示该用户的crons。如果从命令行执行脚本,它将显示该特定用户的crons。
修改强>
为webuser设置cron
sudo crontab -u webuser -e
列出webuser的crons
sudo crontab -u webuser -l
webuser将为nobody
或www-data
或apache
您可以通过从网络浏览器执行以下代码来找到它。
<?php $output = exec('whoami');
echo $output;
?>