【问题标题】:cronjobs not workingcronjobs 不工作
【发布时间】:2012-12-09 19:51:16
【问题描述】:

在过去的几个小时里,我一直在努力让我的 cronJobs 工作。相信我,我用谷歌搜索了所有内容,甚至在 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 在那里。

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

我有 UBUNTU 和 nGinx

有什么帮助吗?

【问题讨论】:

    标签: php unix cron crontab


    【解决方案1】:

    使用-O -

    问题在于,默认情况下,wget 会将其结果保存到文件中。您希望将内容转储到标准输出。

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

    所以:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        这里有几个步骤可以找出问题所在:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-29
          • 1970-01-01
          • 1970-01-01
          • 2011-08-03
          • 2016-11-20
          • 1970-01-01
          相关资源
          最近更新 更多