【问题标题】:Cron wget commands not reaching websiteCron wget 命令未到达网站
【发布时间】:2014-10-15 23:40:58
【问题描述】:

为了缩短一个很长的故事,我们曾经为一个客户项目拥有自己的服务器环境,但最终决定使用第三方托管解决方案 (Nexcess)。在此之前,我们有一个使用 webmin 作为界面的虚拟服务器,它在 Ubuntu 上运行。

我们的想法是在 ExpressionEngine 中包含一些模板,其中包含每小时每隔一段时间就会触发一次的函数。自然,这就是 Cron 发挥作用的地方。这些方法可以完美运行数周。

在迁移期间,Nexcess 承诺将所有内容移植过来(这是他们对我的公司和客户的吸引力的一部分。理论上,我们双方都不需要额外的工作)。

这些函数现在不再触发。

原件丢失了,现在替换为这些(我没有制作,很可能是 Nexcess)。他们没有到达模板,我知道这一点,因为我可以查看命中计数器。此外,手动触发每个模板可以提供所需的结果 - 因此代码本身就可以了。

Cron 命令是:

wget --user=cron --password='abc123'
-O - -t 5 https://example.com/site/shipping_process

wget --user=cron --password='abc123'
-O - -t 5 https://example.com/site/import


wget --user=cron --password='abc123'
-O - -t 5 https://example.com/site/stockupdate

*请注意,这些模板受到保护,因此必须提供用户名和密码才能直接访问。

关于什么是滞留有任何线索吗?

在 webmin 上,我实际上可以使用 Cron 运行测试并查看输出 - Nexcess 和“Siteworx”没有这样的运气(就我目前能够预测的范围而言)。

所以问题似乎是主机提供商使用的是过时的 Wget 版本。这个旧版本在 SSL 方面存在特殊问题,适用于我们的案例。他们建议我们使用 Curl 重建语句。

我们上面的内容可能是什么等价物(我正在积极研究这个问题)。

到目前为止,将以下内容放在一起,没有运气:

/usr/bin/curl -username cron:abc123 --silent https:example.com/site/stockupdate &>/dev/null

【问题讨论】:

  • 如果从命令行调用这些命令会起作用吗?
  • 其实没有!我试过了,它吐出错误..虽然想通了。与 Webmin 不同,显然我必须指定 wget 的路径。尽管如此,即使这样做了,也没有任何效果。
  • 当您说“没有任何效果”时,您的意思是该命令在命令行中也不起作用吗?您是否尝试过通过 http 而不是 https?你试过没有密码要求的版本吗?
  • 在 http 上使用它。我们不确定为什么,因为我们确实有一个有效的 SSL 证书。我们正在与主机提供商交谈——他们在查看完所有内容后最初的反应是“这不应该发生”。

标签: php cron crontab expressionengine


【解决方案1】:

想通了。

/usr/bin/curl –silent –output -u 用户:密码https://example.com/site/shipping_process

【讨论】:

  • 您是否得到解释为什么这是必要的?扩展您的答案将帮助处于相同情况的其他人(并让您投票!)
猜你喜欢
  • 2014-09-22
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2013-03-06
  • 2020-10-05
相关资源
最近更新 更多