Crontab与wget运行一个命令而不是另一个命令

时间:2013-08-12 12:01:27

标签: php linux apache cron crontab

我有以下crontab文件,其中第一个wget命令可以工作但另一个不能。两个网址上的代码完全相同,只有一个位于我的开发域,另一个是生产域。

SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=me@mydomain.com
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons /dev/null 2>&1

* * * * * /usr/bin/wget -O /dev/null -q http://dev.mydomain.com/cron/cron.php #Works fine

* * * * * /usr/bin/wget -O /dev/null -q http://live.mydomain.com/cron/cron.php #Does not work

我已经尝试过评论工作命令,以防它不喜欢一起运行2,但这并没有区别。

我已经检查过“实时”网址在浏览器中运行时是否有效。

我从crontab或apache日志中都没有错误。

没有任何反应。

我重新启动了cron守护程序,甚至重新启动了服务器。

有没有人经历过这样的事情?

修改 好的,我在代码中添加了记录错误,现在它可以正常工作:

SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=me@mydomain.com
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons /dev/null 2>&1

* * * * * /usr/bin/wget -O /dev/null -q http://dev.mydomain.com/cron/cron.php >> /srv/www/dev/cron/CRONdev_LOG.txt 2> /dev/null 

* * * * * /usr/bin/wget -O /dev/null -q http://live.mydomain.com/cron/cron.php  >> /srv/www/live/cron/CRONlive_LOG.txt 2> /dev/null

虽然我很高兴它现在有效,我仍然希望有人解释原因!

1 个答案:

答案 0 :(得分:1)

好的,我终于明白了这一点,这真的很容易,但我会在这里向任何像我这样可能有过挣扎的人保留这个问题。

crontab文件末尾最初没有换行符,因此最后一个命令没有运行。当我编辑它并添加错误检查时,我在没有意识到的情况下添加了换行符,从而使其工作。

经过一番谷歌搜索后,我在一些地方发现了这一点,但它似乎并不太常见。

此外,由于它没有引起任何错误,因此很难发现。

相关问题