cron jobs:监控作业完​​成所需的时间

时间:2012-08-15 17:41:42

标签: linux shell ubuntu cron

我正在做一个研究项目,需要我在Ubuntu Linux系统上监控cron作业。我收集了有关作业任务的数据以及它们何时启动,我只是不知道如何监控它们完成运行需要多长时间。

我可以计算完成任务的时间减去启动它with something like this,但这需要在每个cron作业的Shell脚本上执行此操作。无论如何这并不一定是困难的,但是cron似乎不会以某种方式记录这一点,所以我试图找到一种更简单的方法:P

tl; dr计算从开始到结束的时间cron作业

4 个答案:

答案 0 :(得分:9)

您可以将time放在crontabs前面,如果您收到有关cron脚本输出的通知,它就会被发送给您。

例如,如果你有:

0 1,13 * * * /maint/run_webalizer.sh

在前面添加time

0 1,13 * * * time /maint/run_webalizer.sh

你会得到一些看起来像的输出("真实"是你想要的时间):

real    3m1.255s
user    0m37.890s
sys     0m3.492s

如果您没有收到cron通知,则只需将输出通道传输到文件即可。

答案 1 :(得分:1)

man time。也许你可以创建一个包装器并告诉Cron将它用作你的“shell”或类似的东西。

答案 2 :(得分:0)

我使用Jenkins CI通过其external-monitor-job插件执行此操作。 Jenkins可以跟踪开始和结束时间,跟踪整个执行时间,保存所跟踪的所有作业的输出,并以图形方式显示成功/失败条件。

https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+external+jobs

答案 3 :(得分:0)

Cronitor(https://cronitor.io)是我为此目的而构建的工具。它使用http请求记录作业的开始和结束。

如果您的工作没有按计划运行,或者运行时间太长/太短,您将收到通知。您还可以将其配置为通过电子邮件,短信,还有Slack,Hipchat,Pagerduty和其他人发送警报。