我们有一项工作,定于周一至周五运行。直到两周前,它每周运行 5 天。在过去的两周里,它在周一失败了。我无法找到故障点的位置。
### Example Scripts
0 2 * * 1-5 /admin/scripts/example.exp 1>/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
我们运行 AIX 7.1。
我查看了 /var/log/ 并且那里没有 cron 文件。寻求建议以添加此内容,以便我们进行故障排除。
我发现日志位于/var/adm/log
. 此外,自此日期/时间以来,我们反复收到此错误。如何清除此最大限制?
c queue max run limit reached Fri Nov 25 21:52:00 2016
! rescheduling a cron job Fri Nov 25 21:52:00 2016
Run Code Online (Sandbox Code Playgroud)
该错误消息c queue max run limit reached
表示您已达到并发cron
作业的限制。
我相信cron
AIX 上的默认设置是 50 个并发作业,因此您确实需要调查为什么有 50 个作业同时运行。(也许它们是同一作业的多个相互重叠的实例。)
这两行应该为您提供在 下运行的作业列表cron
,从那里您应该能够调查问题的根本原因:
p=$(ps -ef | awk '/[c]ron/{print $2}' | xargs | tr ' ' '|')
ps -ef | egrep "\<($p)\>"
Run Code Online (Sandbox Code Playgroud)
如果您确实需要增加并发作业的数量,您可以在/var/adm/cron/queuedefs
以下位置找到配置设置:
c.50j20n60w
Run Code Online (Sandbox Code Playgroud)
在哪里
c
=cron
队列Nj
= 同时运行的最大作业数 cron
Nn
=nice
要运行的作业的值(默认为 2)Nw
= 作业必须等到下一次尝试运行它的时间有关此答案的 AIX 特定来源,请参阅http://www-01.ibm.com/support/docview.wss?uid=isg3T1020382。