1

我有以下 crontab 文件,其中第一个 wget 命令有效,但另一个无效。两个 url 上的代码是相同的,只有一个在我的开发域,另一个是生产域。

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,但这没有任何区别。

我检查了“实时”URL 在浏览器中运行时是否有效。

我从 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

虽然我很高兴它现在可以工作,但我仍然希望有人解释为什么!

4

1 回答 1

1

好的,我终于想通了,这真的很容易,但我会把这个问题留给像我这样可能遇到困难的其他人。

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

经过一番谷歌搜索后,我发现在一些地方提到了这一点,但这似乎不是太普遍的知识。

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

于 2013-08-15T07:18:53.790 回答