Outil gratuit
Traduire une expression cron (crontab) en français
Collez une expression ou une ligne de crontab, obtenez sa traduction en français et les cinq prochaines exécutions réelles. C'est le moyen le plus rapide de vérifier qu'une tâche planifiée fera bien ce que vous croyez.
Aide-mémoire
Les cinq champs, dans l'ordre
Une expression cron se lit toujours de la gauche vers la droite, du plus fin au plus large :
minute (0-59) heure (0-23) jour du mois (1-31) mois (1-12) jour de la semaine (0-7)
Quatre symboles suffisent à tout écrire :
- * : toutes les valeurs du champ ;
- , : une liste de valeurs, comme 1,15 ;
- - : un intervalle, comme 9-17 ;
- / : un pas, comme */10 pour une valeur sur dix.
Le dimanche s'écrit indifféremment 0 ou 7. Les abréviations anglaises sont acceptées dans les deux derniers champs : MON, JAN, et ainsi de suite.
Le piège qui fait tourner les tâches trop souvent
Quand le champ du jour du mois et celui du jour de la semaine sont tous les deux renseignés, cron ne fait pas « et », il fait « ou ». L'expression 0 9 1 * 1 ne veut pas dire « le 1er du mois s'il tombe un lundi », mais « tous les lundis, plus le 1er de chaque mois ». C'est un comportement hérité des premières versions d'Unix, et une source d'incidents récurrente. L'outil ci-dessus applique cette règle : si votre expression combine les deux champs, regardez les prochaines exécutions, elles ne mentent pas.
Les erreurs qui coûtent une nuit
- Le fuseau horaire. Cron suit l'horloge du serveur, pas la vôtre. Un serveur en UTC déclenchera votre sauvegarde « de 3 h » à 4 h ou 5 h en France selon la saison. Les dates affichées ici utilisent l'heure de votre ordinateur.
- Le changement d'heure. Au passage à l'heure d'hiver, une tâche planifiée entre 2 h et 3 h peut s'exécuter deux fois ; au passage à l'heure d'été, pas du tout. Pour une tâche sensible, planifiez-la en dehors de cette plage.
- L'environnement. Cron démarre avec un PATH minimal et sans les variables de votre session. Un script qui fonctionne dans votre terminal peut échouer silencieusement une fois planifié : utilisez des chemins absolus et redirigez la sortie vers un fichier de journal.
Et le vrai sujet reste ailleurs : une tâche planifiée qui échoue ne prévient personne. Si la vôtre fait quelque chose d'important, faites-lui signaler sa réussite à un service de surveillance qui alerte quand le signal n'arrive pas.
Questions fréquentes
Questions sur cron
Que signifie une expression cron comme 0 3 * * 1 ?
Une expression cron comporte cinq champs séparés par des espaces : minute, heure, jour du mois, mois et jour de la semaine. « 0 3 * * 1 » signifie donc : à la minute 0 de la 3e heure, tous les jours du mois, tous les mois, uniquement le lundi. Autrement dit, tous les lundis à 3 h du matin.
Que veut dire l'astérisque dans une expression cron ?
L'astérisque signifie « toutes les valeurs possibles de ce champ ». Un astérisque dans le champ des heures veut dire « à chaque heure ». La forme */5 signifie « une valeur sur cinq », soit toutes les cinq minutes dans le champ des minutes.
Pourquoi ma tâche s'exécute-t-elle plus souvent que prévu ?
C'est presque toujours la règle du jour du mois et du jour de la semaine. Quand ces deux champs sont tous les deux renseignés, cron déclenche la tâche si l'un OU l'autre correspond, et non les deux ensemble. « 0 9 1 * 1 » se déclenche donc tous les lundis ET le 1er de chaque mois.
Peut-on mettre des secondes dans une expression cron ?
Pas avec le cron des systèmes Linux, qui ne descend pas sous la minute. Les expressions à six champs proviennent d'autres ordonnanceurs comme Quartz, Spring ou certaines bibliothèques applicatives. Pour descendre sous la minute sur un serveur Linux, il faut un minuteur systemd ou une boucle dans un service.
Vos tâches planifiées échouent en silence ?
C'est le genre de problème qu'on découvre le jour où on a besoin de la sauvegarde. Je mets en place la supervision qui vous prévient avant.