在 Ubuntu 上使用 CRON 运行 PHP

pyr*_*aur 2 ubuntu php cron

请告诉我我做错了什么,为什么不运行:

 3 * * * * /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log
Run Code Online (Sandbox Code Playgroud)

logPHP.log已制作,但在运行时为空。如果我将 3 替换为*,则脚本开始运行但永远不会结束。

当我在终端中复制它时:

/usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log
Run Code Online (Sandbox Code Playgroud)

一切都按照预期顺利进行。

Ubuntu 10.04 LTS,

PHP 5.3.2-1ubuntu4.9 with Suhosin-Patch (cli)
Run Code Online (Sandbox Code Playgroud)

Cod*_*per 10

如果您用于 crontab -e创建 cron 条目,请忽略缺少的用户部分。

检查 cron 条目的语法,您缺少“用户”,例如:

3 * * * * some_user_here /usr/bin/php -q /var/www/CRON/hourly.php > /var/www/logPHP.log
Run Code Online (Sandbox Code Playgroud)

通过验证执行此操作时没有错误来检查 some_user_here 是否为日志文件的写入权限:

su -m some_user_here
cd /var/www/
touch logPHP.log
Run Code Online (Sandbox Code Playgroud)

通过确认 /usr/bin/php 在执行此操作时返回来检查 php 可执行文件是否存在于您指定的位置:

whereis php
Run Code Online (Sandbox Code Playgroud)

您在设置 cron 条目时是否使用了指南,例如https://help.ubuntu.com/community/CronHowto

  • 仅当您将文件放入 /etc/cron.d 时才需要放入用户。如果您为单个用户设置 crontab(即,运行“crontab -e”,则 Methemer 使用的格式是正确的)。 (2认同)