首页 文章

Cron Jobs的新手 - 和Cron Job没有运行? [关闭]

提问于
浏览
1

我对cron的工作非常陌生,但我正在使用的一个wordpress插件依赖于一个以我们想要的方式运行(自动报告而不是手动) .

它告诉我要开始一个cron工作并给它命令

wget --quiet /wp-admin/admin-ajax.php?action=THE_PLUGINS_FUNCTION

好的,我做到了,我每分钟设置一次,所以整个命令看起来像这样

(* * * * *) wget --quiet /wp-admin/admin-ajax.php?action=THE_PLUGINS_FUNCTION

当然,查询字符串不是 THE_PLUGINS_FUNCTION ,它的实际名称都是小写 .

但它似乎没有运行?

Some More Info:

  • 我们在 http://domain.com 上使用wordpress

  • 我们需要cron在所有子域上运行 - http://test.domain.com

  • Cron Job不需要在主站点上运行

  • 我们正在使用CPanel

我不确定 --quiet cron的工作是什么,我也不确定 wgetcurl 之间的区别,我知道'zero'关于cron的工作

如果您需要更多信息,请与我们联系

EDIT: 我删除了 --quiet 并在我的垃圾邮件文件夹中找到了这个:" /wp-admin/admin-ajax.php?action=repagent_email_reports: Scheme missing. "

1 回答

  • 3

    Cron的工作并不神秘 . 所有cron作业都是时间间隔和shell命令 . 在每个时间间隔,将运行shell命令 .

    您在此处提供的cron作业包括以下两部分:

    • (* * * * *) 表示时间间隔 . 这是由空格分隔的五个字段 . 这些字段按顺序表示:分钟,小时,日,月和工作日 . 如果您在其中一个字段中指定了一个数字,例如分钟字段中的 1 ,它将仅在当前分钟为 1 时运行cron作业 . hour 字段中的 10 仅在当前小时为 10 时运行 . A * 表示任何值都可以 . 五颗星意味着每个小时或每个月的每一天每分钟运行一次命令 . 奇怪的是,如果你有 * 10 * * * 它将在每个月的每一天的第10小时的每一分钟运行cron作业 .

    • wget --quiet /wp-admin/admin-ajax.php?action=THE_PLUGINS_FUNCTION 是要运行的shell命令 . 这只是一个shell命令 . 您可以在shell中运行它来测试shell命令 .

    你遇到的问题是 wget 的参数不正确 . wget--quiet 参数意味着它不会产生太多输出 . /wp-admin/admin-ajax.php?action=THE_PLUGINS_FUNCTION 是要请求的地址 . wget 失败,因为 /wp-admin/admin-ajax.php?action=THE_PLUGINS_FUNCTION 不是有效地址 - 缺少架构( http: )和主机名( test.domain.com ) .

    您可以通过将其更改为以下内容来修复您的cron作业:

    (* * * * *) wget --quiet http://test.domain.com/wp-admin/admin-ajax.php?action=THE_PLUGINS_FUNCTION
    

    您需要为要运行此命令的每个子域添加新的cron作业 .

    您可以通过将其粘贴到shell并运行它来检查以确保 wget 命令正常工作 . 一旦你知道它工作正常,将它添加为一个cron作业,它应该工作得很好 .

相关问题