【问题标题】:Cron job with parameters in command line在命令行中使用参数的 Cron 作业
【发布时间】:2014-06-21 05:49:11
【问题描述】:

尝试在 cPanel 中设置几个 cron 作业,但由于系统对 cron 使用命令行,所以我不能使用参数 - 这是一个 wordpress cron 并依赖于 url 中的参数。

我怎样才能让它通过命令行工作?

php -q /home/facebnzc/public_html/folkeuniversitetet/wp-cron.php?import_key=NAbeK7X&import_id=1&action=processing

【问题讨论】:

  • 命令行对 url 有绝对的NO知识。 ? 将被视为 shell 通配符,您将得到“不匹配”,& 将成为作业控制操作员,并将您的整个 php 命令置于后台,等等等等。命令行与 Web 完全NOTHING,你不能指望 Web 地址对 shell 有任何意义。
  • 也许这会有所帮助:stackoverflow.com/q/8558041/367456 - 基本思想是您使用 cron 命令为您执行网络请求。通常这是使用 curl 或 wget 完成的,一些 cpanel 还允许您为它们的“种类”cron 指定 webrequest。

标签: php wordpress cron


【解决方案1】:

此常量仅启用或禁用对准备触发的事件的检查。你还在 像我们上面所做的那样添加和管理事件。我们只需经常手动点击 WordPress 安装中的 wp-cron.php 文件,以便在需要时触发我们的脚本。

如果您只有日常脚本,您可以通过 crontab -e 添加这样的 cron 作业 命令:

0 0 * * * wget -O - -q -t 1 http://yoursite.com/wp-cron.php?doing_wp_cron=1

有关如何使用 cron 的信息可以在其 Wikipedia 条目中找到。信息 wget的使用方法见wget手册。

前面条目的 0 0 * * * 部分告诉 cron 在 0 分钟执行此脚本 在一周中的每一天的第 0 个小时(午夜)。

wget -O - -q -t 1 http://yoursite.com/wp-cron.php?doing_wp_cron=1 部分 使用 wget 命令在您的 WordPress 安装中加载 wp-cron.php 页面。这 -O - 告诉 wget 将输出发送到 devnull,-q 启用安静模式。这将保持 cron 将文件添加到您的服务器或通过电子邮件将每个 cron 运行的输出发送给您。这 -t 1 告诉 cron 尝试一次。这将防止 wget 多次访问您的服务器 如果第一次尝试失败。如果对wp-cron.php 的调用失败,则您网站的其余部分也可能失败;希望您已经收到通知。

请务必将yoursite.com 更改为您的实际网站网址。最后,需要 URL 末尾的 ?doing_wp_cron=1,因为 wp-cron.php 会检查它 运行前$_GET参数。

【讨论】:

    猜你喜欢
    • 2013-07-24
    • 2020-10-22
    • 2016-12-10
    • 1970-01-01
    • 2020-06-10
    • 2014-02-13
    • 2013-12-20
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多