5

UbuntuLinuxシステムでcronジョブを監視する必要がある研究プロジェクトを行っています。ジョブのタスクに関するデータを収集しましたが、ジョブが開始されたときに、実行が完了するまでにかかる時間を監視する方法がわかりません。

タスクを終了する時間を計算して、このようなもので開始することはできませんが、各cronジョブのシェルスクリプトでそれを実行する必要があります。これは必ずしも難しいことではありませんが、cronが何らかの方法でこれをログに記録しないのは少しばかげているように思われるので、もっと簡単な方法を見つけようとしています:P

tl;drcronジョブが開始から終了までにかかる時間を把握する

4

4 に答える 4

12

crontab の前に置くだけtimeで、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 通知を受け取れない場合は、出力をファイルにパイプするだけです。

于 2012-08-15T17:52:13.180 に答える
1

man time. ラッパーを作成して、Cron にそれを「シェル」などとして使用するように指示することもできます。

于 2012-08-15T17:50:52.600 に答える
0

Jenkins CI を使用して、external-monitor-job プラグインを介してこれを行います。Jenkins は、開始時刻と終了時刻を追跡し、全体的な実行時間を経時的に追跡し、追跡するすべてのジョブの出力を保存し、成功/失敗の状態をグラフィカルに提示できます。

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

于 2015-01-30T23:24:29.820 に答える
0

Cronitor ( https://cronitor.io ) は、まさにこの目的のために構築したツールです。http リクエストを使用して、ジョブの開始と終了を記録します。

ジョブがスケジュールどおりに実行されない場合、または実行時間が長すぎる/短すぎる場合に通知されます。メール、SMS、Slack、Hipchat、Pagerduty などを介してアラートを送信するように設定することもできます。

于 2016-12-29T16:50:06.933 に答える