我试图找出如何确定某一特定作业(异常终止)的相应重新启动时间(作业最终完成之前的最后一次重新启动)。
例如:
在这个例子中,我可以有把握地假设作业ABC的完成时间是5:15。我试图计算Job的停机时间,方法是减去第一次重新启动的时间(5:10-5:03=7分钟停机时间)。
这是我为获得第一次故障和最后一次重新启动时间所做的工作:
grep abended logfile | head -1 #first failure
grep restarted logfile | tail -1 #last restart但问题是,如果另一份工作ABC在6点开始运作,又会怎样呢?
算了吧,
如果是这样的话,我就不能再使用我上面说过的头尾了。
如何判断6:05重新启动是否与另一项在6:03开始下降的作业ABC相对应?
顺便说一句,我正在尝试创建一个自动化工具,它将获得作业的停机时间,我唯一的参考是一个纯文本日志文件,它每24小时自动创建一次。
注意:我使用的是Bash脚本。
发布于 2013-05-10 09:45:36
cat tmp.log
Job ABC ran at 5:00
Job ABC abended at 5:03
It was restarted at 5:05
Job ABC abended again at 5:08
I was restarted again at 5:10
Job ABC completed at 5:15
Another Job ABC ran at 6:00.
It abended at 6:03.
It was restarted at 6:05
Job ABC completed at 6:07. awk '{if(s==0 && /abended/){s = 1;st = $NF}}{if(s && /restarted/) {et = $NF}}1; /completed/{s=0;print "Downtime of this job was: "et "-" st}' tmp.log这将提供以下输出:
Job ABC ran at 5:00
Job ABC abended at 5:03
It was restarted at 5:05
Job ABC abended again at 5:08
I was restarted again at 5:10
Job ABC completed at 5:15
Downtime of this job was: 5:10-5:03
Another Job ABC ran at 6:00.
It abended at 6:03.
It was restarted at 6:05
Job ABC completed at 6:07.
Downtime of this job was: 6:05-6:03.https://stackoverflow.com/questions/16478855
复制相似问题