ubuntu cron jobs:监视作业完成所需的时间

rdrgkggo  于 2023-02-21  发布在  其他
关注(0)|答案(4)|浏览(149)

我正在做一个研究项目,需要我在Ubuntu Linux系统上监控cron作业。我已经收集了关于作业任务的数据,以及它们何时启动,我只是不知道有什么方法可以监控它们需要多长时间才能完成运行。
我可以计算完成任务减去启动它的时间with something like this,但这需要在每个cron作业的Shell脚本上执行。这并不一定很困难,但cron不以某种方式记录这一点似乎有点愚蠢,所以我试图找到一个更简单的方法:P
tl;dr计算cron作业从开始到结束所用的时间

exdqitrt

exdqitrt1#

您可以将time放在crontab前面,如果您收到关于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通知,您可以将输出通过管道传输到一个文件。

wnrlj8wa

wnrlj8wa2#

man time .也许您可以创建一个 Package 器,并告诉Cron将其用作您的“ shell ”或类似的东西。

v9tzhpje

v9tzhpje3#

Cronitor(https://cronitor.io)是我专门为此而构建的一个工具,它使用http请求来记录你作业的开始和结束。
如果你的作业没有按计划运行,或者运行时间过长/过短,你会收到通知。你也可以配置它通过电子邮件、短信、Slack、Hipchat、Pagerduty和其他方式向你发送警报。

kyks70gy

kyks70gy4#

我使用Jenkins CI通过它的external-monitor-job插件来完成这项工作,Jenkins可以跟踪开始和结束时间,跟踪一段时间内的总执行时间,保存它跟踪的所有作业的输出,并以图形方式显示成功/失败条件。
https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+external+jobs

相关问题