我正在做一个研究项目,需要我在Ubuntu Linux系统上监控cron作业。我已经收集了关于作业任务的数据,以及它们何时启动,我只是不知道有什么方法可以监控它们需要多长时间才能完成运行。
我可以计算完成任务减去启动它的时间with something like this,但这需要在每个cron作业的Shell脚本上执行。这并不一定很困难,但cron不以某种方式记录这一点似乎有点愚蠢,所以我试图找到一个更简单的方法:P
tl;dr计算cron作业从开始到结束所用的时间
我正在做一个研究项目,需要我在Ubuntu Linux系统上监控cron作业。我已经收集了关于作业任务的数据,以及它们何时启动,我只是不知道有什么方法可以监控它们需要多长时间才能完成运行。
我可以计算完成任务减去启动它的时间with something like this,但这需要在每个cron作业的Shell脚本上执行。这并不一定很困难,但cron不以某种方式记录这一点似乎有点愚蠢,所以我试图找到一个更简单的方法:P
tl;dr计算cron作业从开始到结束所用的时间
4条答案
按热度按时间exdqitrt1#
您可以将
time
放在crontab前面,如果您收到关于cron脚本输出的通知,它就会发送给您。例如,如果您有:
在前面添加
time
你会得到如下的输出(“真实的”是你想要的时间):
如果您没有收到cron通知,您可以将输出通过管道传输到一个文件。
wnrlj8wa2#
man time
.也许您可以创建一个 Package 器,并告诉Cron将其用作您的“ shell ”或类似的东西。v9tzhpje3#
Cronitor(https://cronitor.io)是我专门为此而构建的一个工具,它使用http请求来记录你作业的开始和结束。
如果你的作业没有按计划运行,或者运行时间过长/过短,你会收到通知。你也可以配置它通过电子邮件、短信、Slack、Hipchat、Pagerduty和其他方式向你发送警报。
kyks70gy4#
我使用Jenkins CI通过它的external-monitor-job插件来完成这项工作,Jenkins可以跟踪开始和结束时间,跟踪一段时间内的总执行时间,保存它跟踪的所有作业的输出,并以图形方式显示成功/失败条件。
https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+external+jobs