我尝试在装有 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 服务器调用的脚本不同。