Cron(tab) : un GUI pour en faciliter l'utilisation

cron 5 avr. 2016

Cron est un programme qui permet aux utilisateurs des systèmes Unix d’exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiées à l’avance, ou selon un cycle défini à l’avance.

Dixit Wikipedia. Et c’est très bien.

Les utilisateurs de Linux (notamment de serveurs dédiés) le connaissent en général bien puisque très utile pour lancer tout un tas de scripts. Nous le connaissons aussi, voire plus, au travers de son éditeur de tâches : crontab (sudo crontab -e etc).

Le fonctionnement est très basique : on indique à cron ce qu’il doit faire, quand et comment. Lancer un programme ou exécuter un script, à quelle heure, quels jours, toutes les X minutes/heures et s’il doit ou non produire un fichier de sorti (log etc). Le plus âpre est bien souvent de se souvenir de la logique d’écriture du timer, les fameuses étoiles de chaque tâche : * * * * * machin/truc/muche

Je vais me contenter de c/c Wikipedia qui est vraiment clair et limpide à ce sujet :

mm hh jj MMM JJJ tâche
  • mm représente les minutes (de 0 à 59)
  • hh représente l’heure (de 0 à 23)
  • jj représente le numéro du jour du mois (de 1 à 31)
  • MMM représente l’abréviation du nom du mois (jan, feb, …) ou bien le numéro du mois (de 1 à 12)
  • JJJ représente l’abréviation du nom du jour ou bien le numéro du jour dans la semaine :
    • 0 = Dimanche
    • 1 = Lundi
    • 2 = Mardi
    • 6 = Samedi
    • 7 = Dimanche (représenté deux fois pour les deux types de semaine)

Pour chaque valeur numérique (mm, hh, jj, MMM, JJJ) les notations possibles sont :

  • * : à chaque unité (0, 1, 2, 3, 4…)
  • 5,8 : les unités 5 et 8
  • 2-5 : les unités de 2 à 5 (2, 3, 4, 5)
  • */3 : toutes les 3 unités (0, 3, 6, 9…)
  • 10-20/3 : toutes les 3 unités, entre la dixième et la vingtième (10, 13, 16, 19)

Si, sur la même ligne, le « numéro du jour du mois » et le « jour de la semaine » sont renseignés, alors cron exécutera la tâche quand l’un des champs correspond. Par exemple, la ligne suivante indique que la tâche doit être exécutée les vendredis ainsi que le 13 de chaque mois, à minuit :

0 0 13 * 5 tâche

Suivi d’un joli visuel

Crontab_(en_français_-_in_French)

 

Voilà, ça c’est pour la partie “Je suis sur une machine sans environnement graphique” ou encore “Le DE, c’est pour les faibles, IRSSI vaincra !”. Pour les autres, il existe notamment Gnome-Schedule qui est un GUI, une interface graphique, pour cron. En dépit de son nom elle tourne sur d’autres DE que Gnome.

Sélection_017

Gnome-Schedule vous permet de créer des tâches en quelques clics, que ce soit pour lancer un programme, une commande, un script… Et avec une configuration plus qu’aisée pour le coup !

Édition d'une tâche planifiée_020

 

Et on peut confirmer ça en éditant en console crontab -e

crontab  -etc-cron.daily_021

Simple et efficace.

 

Mots clés