我对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的工作是什么,我也不确定 wget
和 curl
之间的区别,我知道'zero'关于cron的工作
如果您需要更多信息,请与我们联系
EDIT: 我删除了 --quiet
并在我的垃圾邮件文件夹中找到了这个:" /wp-admin/admin-ajax.php?action=repagent_email_reports: Scheme missing. "
1 回答
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作业:
您需要为要运行此命令的每个子域添加新的cron作业 .
您可以通过将其粘贴到shell并运行它来检查以确保
wget
命令正常工作 . 一旦你知道它工作正常,将它添加为一个cron作业,它应该工作得很好 .