使用参数运行 PHP Cron Job

使用参数运行 PHP Cron Job

我尝试在装有 php5 的 ubuntu 13.10 服务器上运行一次 PHP 脚本。

crontab -l我已经通过 ajenti 控制面板为该命令设置了 cron 作业,并通过 进行了验证。

php /path/script.php site_id=2 table=clicks

我一直在尝试让它运行并调整时间,但基本上我想在凌晨 2 点运行它。

0 2 * * * 

我曾尝试直接运行该脚本,通过、和运行它/usr/bin/php/usr/bin/php5/php没有任何内容在 syslog、apache 日志或错误文件中留下任何痕迹(跟踪级别 8)

我试图在凌晨 2 点运行它,所以我这样设置,但date在终端上运行显示当前时间为

2014 年 2 月 6 日星期四 07:44:29 UTC

我也尝试过在早上 7 点左右运行 cron 作业,但同样没有任何运行。

有什么想法吗?除了 syslog 之外,是否有任何 ubuntu 日志记录 cron 作业,以查看它们是否运行以及原因?

另外,这是发送参数的正确方法吗?脚本是否需要以与基于 Web 的脚本不同的方式接受它们?

答案1

首先,从命令行验证您的命令是否正常工作:

/usr/bin/env php /path/to/script.php arguments

其次,验证你的cron正在运行:

ps auxw | grep cron

应该有这样的线条(突出显示^我的)

root      1537  0.0  0.0  19112   336 ?        Ss    2012   1:03 cron
^^^^                                                             ^^^^

如果cron运行正常,请检查 syslog 中的其他 cron 消息:

sudo zgrep CRON /var/log/syslog*

默认情况下,各种任务以 、 、 等文件夹的形式运行。root如果没有输出,则说明您的 cron 运行不正常。尝试使用以下命令重新启动它/etc/cron.daily/etc/cron.weekly

sudo /etc/init.d/cron restart

/var/log/syslog并检查错误信息的内容,然后再次执行步骤1


如果cron运行正常,请继续检查拥有该命令的用户的邮箱crontab。替换用户名。

sudo -u USERNAME mail

或 sudo -u USERNAME less /var/mail/USERNAME

如果执行 cron 命令失败,它应该向那里发送电子邮件。


您应该使用/usr/bin/env php /path/to/script.php作为命令,而不仅仅是php/usr/bin/env自动选择正确的php二进制文件。


对于论点,不,你必须单独阅读论点。这与本网站无关,但请查看本手册页。您可以从 读取这些参数$argv。它的工作方式与通过 Web 服务器调用的脚本不同。

相关内容