Le 01/12/2010 15:09, Greg a écrit :
Bonjour,
j'ai des centaines de crons, définie dans une 10ène de crontabs. Le tout géré par des développeurs... (c'est un autre débat). Je voudrais optimiser leur répartition dans le temps. Il y a des crons qui tournent toutes les minutes, les 3 minutes, à certaines heures, bref de tout. On se rend compte facilement qu'à chaque heure à la minute 0, on a plein de crons qui se lancent... et c'est aussi le cas à d'autres minutes.
Est-ce que vous connaisseriez, ou auriez fait un outils qui permet d'avoir un affichage graphique du nombre de crons lancés par minutes, sur une journée ? Avec par exemple des couleurs qui tendent vers le foncé quand il y a beaucoup de crons qui se lancent dans la même minute... Un peu comme dans la "combined map" de visitors : http://www.hping.org/visitors/report.html
Ainsi, je pourrais me rencontre facilement des minutes saturées, et déplacer ces crons à m+1 ou m+n...
J'ai finalement fais un script très rapide en Python, attaché à ce mail. Il prends des crontabs en entrée (stdin), donc vous pouvez utiliser vos outils préférés (ssh, find, xargs, cat, ...) pour les piper dedans, puis il affiche un tableau avec les heures d'une journée en axe X et les minutes en axe Y, avec des couleurs (rouge = pas bien, vert = dispo). Il ne gère pas les lignes de crontabs spéciales (@reboot par exemple), mais de toute façon on s'en fiche le but étant de voir les minutes saturées.
Pardonnez le manque de commentaires et de debug, j'ai fais ça à l'arrache, ça fonctionne avec mes crontabs, je vais pas plus loin ;)
Bon week-end.