【发布时间】:2014-03-07 16:36:35
【问题描述】:
我在 ubuntu 10.10 下尝试安排的每日 cron 作业需要一些帮助。我已经通过crontab -e 添加了这份工作,当我添加crontab -l 时,它看起来还可以。路径和命名都很好:
58 23 * * * /usr/bin/php -f /home/eem/cars1/cron/cronjob1.php
但是,cron 没有执行。我试图从 gnome 调度程序手动运行它。没有成功。我厌倦了用这个命令从控制台手动运行它,再次没有成功:
/usr/bin/php -f /home/eem/cars1/cron/cronjob1.php
我的 var/log/syslog 显示文件已执行,但 Xampp 上的网站没有任何变化:
May 14 06:27:57 eem-VirtualBox /usr/bin/crontab[31959]: (eem) LIST (eem)
此命令:crontab -e 中的 */5 * * * * echo hello 执行并显示在 syslog 中:
May 14 05:40:01 eem-VirtualBox CRON[31085]: (eem) CMD (echo hello)
May 14 05:40:01 eem-VirtualBox CRON[31084]: (CRON) info (No MTA installed, discarding output)
以下一些诊断:
Command1:ps -C cron
终端:
PID TTY TIME CMD
881 ? 00:00:02 cron
var/log/syslog:
May 14 05:17:01 eem-VirtualBox CRON[31033]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Command2::cat /etc/crontab
终端:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Command3: ls /usr/sbin/anacron
终端: /usr/sbin/anacron
Command4: grep CRON /var/log/syslog
终端::还有更多:
5 月 14 日 05:09:01 eem-VirtualBox CRON[30048]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && 查找 /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete) 5 月 14 日 05:17:01 eem-VirtualBox CRON[31033]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
为这篇长文道歉,但在为此苦苦挣扎了几天之后,我迫切希望找到问题所在。希望之后对其他人有所帮助。
【问题讨论】:
-
如果你把
php从58 23 * * * php /home/eem/cars1/cron/cronjob1.php改成php的完整路径怎么办?您可以通过which php获取它。 -
也试过了,系统日志文件中没有任何反应:/usr/bin/php /home/eem/cars1/cron/cronjob1.php
-
您应该将问题分成两部分:crontab 和脚本。对于 crontab,做一个简单的事情,比如
* * * * * touch /tmp/abcdef,看看它是否有效。如果是这样,则 crontab 正在工作。对于脚本,您必须确保您的命令在将其添加到 crontab 之前单独运行。 -
* * * * * touch /tmp/abcdef工作正常。对于脚本,您建议如何测试该命令是否单独工作?如果我在浏览器中启动 php 文件,它工作正常。当通过控制面板安排 cron 作业时,相同的文件也适用于实时服务器。只是不能让它在我的测试服务器上工作。 -
您可以将命令
php /home/eem....粘贴到您的命令行中,看看它是否有效。