在过去的几个小时里,我正努力让我的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
任何帮助?
答案 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)
以下是解决问题的几个步骤:
MAILTO=myemail@serv.com
应该在该脚本中,而不是在crontab中crontab
是否具有相同的环境变量