Analyseur d'expressions Cron et calcul des prochaines exécutions
Analyse une expression cron (minute heure jour mois jour de la semaine) et affiche sa planification en langage clair. Prend en charge les pas, les plages et les listes, et calcule les 5 prochaines exécutions. Utile pour lire une crontab ou la planification GitHub Actions.
Syntaxe de l'expression cron (5 champs)
Une expression cron comporte 5 champs séparés par des espaces, de gauche à droite : minute, heure, jour du mois, mois et jour de la semaine. Chaque champ accepte les caractères spéciaux suivants.
| Position | Champ | Valeurs autorisées |
|---|---|---|
| 1 | Minute | 0-59 |
| 2 | Heure | 0-23 |
| 3 | Jour du mois | 1-31 |
| 4 | Mois | 1-12 |
| 5 | Jour de la semaine | 0-7 |
Le jour de la semaine est normalement 0 = dimanche à 6 = samedi, mais cet outil accepte aussi 7 comme alias de dimanche, utilisé par certaines implémentations de cron (traité comme 0).
Chaque champ accepte "*" (toute valeur), les listes séparées par des virgules (1,15,30), les plages avec un tiret (1-5) et les pas avec une barre oblique (*/15, 1-30/5), qui peuvent être librement combinés.
Modèles cron courants
| Expression cron | Signification |
|---|---|
| * * * * * | S'exécute chaque minute. |
| */5 * * * * | S'exécute toutes les 5 minutes. |
| 0 * * * * | S'exécute une fois par heure, à la minute 0. |
| 0 0 * * * | S'exécute tous les jours à minuit (00:00). |
| 0 9 * * 1-5 | S'exécute à 9h en semaine (du lundi au vendredi). |
| 0 0 1 * * | S'exécute à minuit le 1er de chaque mois. |
| 0 0 1 1 * | S'exécute à minuit le 1er janvier de chaque année. |
| */15 9-17 * * 1-5 | S'exécute toutes les 15 minutes entre 9h et 17h en semaine. |
Astuces
- Les champs peuvent librement combiner des listes séparées par des virgules, des plages avec un tiret et des pas avec une barre oblique, comme dans "*/15 9-17 * * 1-5".
- Le jour de la semaine est normalement 0-6 (dimanche à samedi), mais cet outil accepte aussi le 7 comme alias courant du dimanche utilisé par certaines implémentations de cron.
- Si le jour du mois et le jour de la semaine sont tous deux restreints (pas *), le cron standard les traite comme une condition OU : la tâche s'exécute si l'une des deux conditions est remplie.
- Le déclencheur schedule de GitHub Actions utilise la même syntaxe cron à 5 champs que cet outil, il peut donc aussi servir à vérifier précisément quand un workflow s'exécutera.
- L'heure d'exécution réelle dépend du fuseau horaire configuré sur le serveur ; il est donc utile de vérifier aussi l'heure actuelle du serveur après avoir modifié une crontab.
Questions fréquentes
Anecdote — Un demi-siècle de cron
Le nom « cron » proviendrait du grec Chronos, qui signifie « le temps », et c'est le planificateur de tâches classique depuis les débuts d'UNIX dans les années 1970. Sa syntaxe compacte à cinq champs peut exprimer aussi bien « chaque minute » que « une date et une heure précises, une fois par an », et elle est encore largement utilisée près d'un demi-siècle plus tard.
Aujourd'hui, cette même syntaxe cron à 5 champs est utilisée non seulement dans les crontabs des serveurs Linux, mais aussi dans de nombreux outils CI/CD et plateformes de conteneurs, comme GitHub Actions, GitLab CI et les CronJobs de Kubernetes. C'est un exemple frappant d'une syntaxe conçue à l'ère UNIX qui continue de prospérer sans changement dans des environnements cloud natifs.
L'un des aspects les plus déroutants de la syntaxe cron est son comportement lorsque le jour du mois et le jour de la semaine sont définis ensemble. On est tenté de supposer une condition ET (les deux doivent être remplies), mais la spécification réelle est une condition OU (l'une des deux suffit), ce qui est une cause fréquente de tâches s'exécutant plus souvent que prévu.