monJobScheduler - configure automatiquement la crontab But : Au boulot j'utilise un produit qui permet d'executer des taches periodiquement. C'est un produit payant, et sur la plateforme de developement je n'ai pas de licences pour ce produit. Pour tester les scripts lancés periodiquement, j'ai besoin de configurer la crontab qui doit m'envoyer un mail pour connaitre le resultat de l'execution du script. C'est ce qui est fait par monJobScheduler. Fonctionnalites : - Configure automatiquement la crontab de l'utilisateur suivant le fichier de configuration js.cfg (format plus ou moins impose par le produit commercial, pour des raisons de compatibilites). - Execute le script conf-cron-local.sh si il existe pour une configuration specifique a une plateforme. - Envoi d'un couriel pour chaque action terminee - Separation des couriels dans differentes boites au lettres suivant un fichier de configuration compatible avec procmail (exemple : une boite aux lettres par serveur, par type de machines, ...). Quickstart : 1. Editer le fichier js.cfg pour y definir les variables : ListeUPR : liste des procedures a lancer. Eventuellement, les procedures peuvent etre definies par type de machine (ListeUPRAC, ListeUPRAL, ...) et le script ./conf-cron-local.sh, si il existe, peut suivant le hostname, determiner quel liste prendre (voir conf-cron-local.sh.rsb par exemple). 2. Pour chaque procedure, une variable doit contenir la description de cette procedure. Par exemple pour la procedure TRACES, la variable TRACES doit etre definie comme suit : TRACES="Remontee des traces" 3. Pour chaque procedure, une variable doit contenir la description de l'heure et de la frequence a laquelle il faut la lancer. Cette variable doit avoir pour nom le nom de la procedure suffixe par _TSK (par exemple pour la procedure TRACES : TRACES_TSK="..."). Plusieurs formats existent : Pour une tache lancee chaque dimanche a 03 h 45, a partir de maintenant : PURGE_LEX_TSK=" impl add rule=\'(DIMANCHE,`date "+%d/%m/%Y"`)\' ; time dalw=\'(0345,000,15)\'" impl : planification implicite dalw : horaires de lancement journaliers Note : comme calendrier journalier, seule DIMANCHE existe. Ce format est plus ou moins impose par l'ordonnanceur commercial. Ici "0345" signifie 03 h 45, et "000,15" signifie que pendant 0 h 15 la tache est consideree comme etant valide (au dela elle sera en horaire depasse). Cette notion d'horaire depasse n'est par utilisee par monJobScheduler. Pour une tache lancee tous les jours ouvres a 23 h 00, a partir de maintenant : TRACES_TSK=" impl add rule=\'(TV4_J,`date "+%d/%m/%Y"`)\' ; time dalw=\'(2300,000,15)\'" TV4_J : Jours Calendaires 000,15 : signifie que pendant 0 h 15 la tache est consideree comme etant valide Pour une tache lancee tous les jours ouvres a partir de 00 h 05 jusqu'a 23 h 55 toute les 15 mn, a partir de maintenant : STAT_TSK=" impl add rule=\'(TV4_J,`date "+%d/%m/%Y"`)\' ; techinf mult ; time mulw=\'((0005,2355,015),000,15)\'" techinf : informations techniques mult : lancements multiples mulw : horaires de lancements multi journaliers 000,15 : signifie que pendant 0 h 15 la tache est consideree comme etant valide 4. Positionner eventuellement les variables RepUpr (repertoire ou se trouvent les scripts a appeller, repertoire d'installation de monJobScheduler par defaut) et Report (adresse mail a laquelle les infos doivent etre envoyees, $USER@localhost par defaut). Ces variables peuvent etre positionnees dans js.cfg ou dans conf-cron-local.sh. 5. Editer le fichier commun-minprocmail pour preciser le fichier de configuration de procmail a utiliser (variable FicConf). 6. Editer le fichier de configuration de procmail pour separer les mails suivant le type de machine (par exemple) : :0: * ^(Subject).*JS on ac $HOME/Mail/JS-AC :0: * ^(Subject).*JS on ....al.. $HOME/Mail/JS-AL ... 7. Dans le fichier $HOME/.forward : "|/rep/de/monJobScheduler/minprocmail.sh" Enjoy !