cron jobs: surveille le temps nécessaire pour terminer les travaux

Je fais un projet de recherche qui nécessite de surveiller les tâches cron sur un système Linux Ubuntu. J’ai collecté des données sur les tâches des jobs et quand elles sont démarrées, je ne connais tout simplement pas de moyen de contrôler le temps nécessaire pour terminer leur exécution.

Je pourrais calculer le temps de terminer la tâche moins le démarrer avec quelque chose comme ça, mais cela nécessiterait de le faire sur les scripts Shell de chaque tâche cron. Ce n’est pas forcément difficile, mais il semble un peu idiot que Cron n’enregistre pas cela, alors j’essaie de trouver un moyen plus simple: P

tl; dr Déterminer le temps que les tâches cron prennent du début à la fin

Vous pouvez simplement mettre du time devant vos crontabs, et si vous recevez des notifications sur les sorties du script cron, elles vous seront envoyées.

Par exemple, si vous aviez:

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

append du time devant

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

et vous obtiendrez une sortie qui ressemble à (le “vrai” est le temps que vous voulez):

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

Si vous n’obtenez pas les notifications cron, vous pouvez simplement diriger la sortie vers un fichier.

man time . Peut-être que vous pouvez créer un wrapper et dire à Cron de l’utiliser comme “shell” ou quelque chose comme ça.

J’utilise le CI Jenkins pour le faire via son plugin external-monitor-job. Jenkins peut suivre les heures de début et de fin, suivre le temps d’exécution global au fil du temps, enregistrer la sortie de tous les travaux suivis et présenter graphiquement les conditions de réussite / d’échec.

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

Cronitor ( https://cronitor.io ) est un outil que j’ai construit exactement à cette fin. Il utilise les requêtes http pour enregistrer le début et la fin de vos travaux.

Vous serez averti si votre travail ne s’exécute pas dans les délais prévus ou s’il est trop long / trop court. Vous pouvez également le configurer pour vous envoyer des alertes via email, sms, mais aussi Slack, Hipchat, Pagerduty et autres.