cronjobs不工作

时间:2012-12-22 14:18:58

标签: php unix cron crontab

在过去的几个小时里,我正努力让我的cronJobs工作。相信我,我google了一切,我甚至搜索stackoverflow但不知何故我看到的代码没有按预期工作。这就是我在这里发布的原因。

我在SSH中这样做:

crontab -e

然后我编辑我的cronjob列表并添加:

MAILTO=myemail@serv.com
*   *   *   *   *   wget -q "http://www.mywebsite.com/path/to/cronJob.php"

我的电子邮件中没有回复PHP响应。 PHP有一个输出,如果我从浏览器调用它,但我没有得到任何关于我的电子邮件,但如果我在cronJob中输入错误,如删除最后的引号,我收到错误的电子邮件。

然后我按CTRL + X,我保存,然后我重新启动nginx,没有。

我查看了crontab -l并且cronjobs在那里。

我想做的就是让我网站上的网址每1分钟执行一次。如果我从浏览器中调用URL,它似乎可以正常工作。

我有UBUNTU和nGinx

任何帮助?

3 个答案:

答案 0 :(得分:4)

使用-O -

问题是默认情况下,wget会将其结果保存到文件中。您希望将内容转储到stdout。

这意味着你必须清理所有cronJob.php.*文件的工作目录;)

所以:

* * * * * wget -q -O - "http://www.mywebsite.com/path/to/cronJob.php"

答案 1 :(得分:1)

发现问题。我在我的代码中有这个:require_once($ _ SERVER ['DOCUMENT_ROOT']。'/ something / cronJob.php')。

显然$ _SERVER ['DOCUMENT_ROOT']是空的。

所以我用以下方法解决了这个问题:

$ path = str_replace('/ something / cronJob.php','',$ _ SERVER ['PHP_SELF']);

答案 2 :(得分:0)

以下是解决问题的几个步骤:

  1. 制作一个脚本MAILTO=myemail@serv.com应该在该脚本中,而不是在crontab中
  2. 该脚本是否从命令行运行Ok?
  3. crontab是否具有相同的环境变量