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

Oui. La spécification standard de cron utilise 0 pour le dimanche, mais certaines implémentations (comme Vixie cron) acceptent aussi 7 comme notation alternative pour le dimanche. Cet outil interprète les deux comme le dimanche.

Il ne s'agit pas d'une priorité, mais d'une condition OU. Lorsque le jour du mois et le jour de la semaine sont tous deux restreints (pas *), la tâche s'exécute tout jour remplissant l'une des deux conditions. Si un seul des deux champs est restreint, seule cette condition s'applique.

Le format de base à 5 champs (minute heure jour mois jour de la semaine) est identique. La principale différence est que les planifications GitHub Actions sont toujours évaluées en UTC, et l'exécution réelle peut être retardée de quelques minutes à plusieurs dizaines de minutes, contrairement à une crontab de serveur.

Oui, les pas (une valeur de départ avec une barre oblique, ou */intervalle) peuvent être utilisés dans chacun des cinq champs. Cependant, pour les champs à faible plage de valeurs, comme le mois ou le jour de la semaine, les combinaisons pratiques restent limitées.
ツールくん

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.

→ Voir toutes les anecdotes