我们有一项工作定于周一至周五进行。直到两周前,每周有 5 天运行良好。过去两周,周一都失败了。我无法找到哪里可以找到故障点。
### Example Scripts
0 2 * * 1-5 /admin/scripts/example.exp 1>/dev/null 2>&1
我们运行 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
答案1
该错误消息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)\>"
如果你真的需要增加并发作业的数量,您可以在以下位置找到配置设置/var/adm/cron/queuedefs
:
c.50j20n60w
在哪里
c
=cron
队列Nj
= 同时运行的最大作业数cron
Nn
=nice
要运行的作业的值(默认为 2)Nw
= 作业必须等待下一次尝试运行的时间
看http://www-01.ibm.com/support/docview.wss?uid=isg3T1020382获取此答案的特定于 AIX 的来源。
答案2
crontab 的格式表明它是一个用户 crontab(与系统 crontab 不同,系统 crontab 在时间规范后添加了“用户”字段)。
通过重定向,您将失去信息丰富的日志消息。试试这个:
0 2 * * 1-5 /admin/scripts/example.exp >> $HOME/cron.log 2>&1
您将在主目录中的 cron.log 文件中获得执行结果。
答案3
在默认安装中,cron 作业被记录到
/var/log/syslog
您可以通过运行来查看该日志文件中的 cron 作业
grep CRON /var/log/syslog
如果您没有重新配置任何内容,条目将在那里。