请告诉我我做错了什么,为什么不运行:
3 * * * * /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log
logPHP.log
被创build,但在运行时为空。 如果我用*
replace3,脚本开始运行,但永远不会结束。
当我在terminal复制这个:
/usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log
一切运行顺利,因为它应该。
Ubuntu 10.04 LTS,
PHP 5.3.2-1ubuntu4.9 with Suhosin-Patch (cli)
如果使用 crontab -e
创buildcron条目,则忽略缺less的用户部分。
检查cron条目的语法,你缺less“用户”,例如:
3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log
通过在执行此操作时validation没有错误,检查some_user_here是否向日志文件写入权限:
su -m some_user_here cd /var/www/ touch logPHP.log
通过确认/ usr / bin / php是否返回,检查php可执行文件是否存在于指定的位置:
whereis php
你是否在设置你的cron条目时使用了指南,例如https://help.ubuntu.com/community/CronHowto ?
您正在将标准输出(STDOUT)logging到日志文件,但您忽略了标准错误(STDERR)。 将STDERR发送到日志文件几乎总是一个好主意。 如果您忽略错误,您可能会错过关键问题。
修改你的cronjob把STDERRredirect到相同的日志文件,使用2>&1
:
3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log 2>&1
或者,也可以将错误发送到第二个日志文件:
3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log 2> /var/www/logPHP.err
然后,允许脚本再次运行,并检查/var/www/logPHP.log是否有错误。 在这一点上,你可能会自己解决这个问题。 如果您仍然需要帮助,可以使用错误日志的输出来更新您的答案。