Générateur d'expressions Cron

0-59

0-23

1-31

1-12

0-7 (0,7=Dim)

Suivant

La syntaxe cron est concise et facile à mal interpréter : 0 */6 * * * s’exécute toutes les six heures, tandis que */6 0 * * * se déclenche dix fois, uniquement pendant la première heure après minuit. Ce générateur vous permet de choisir un calendrier visuellement (toutes les 15 minutes, les jours de semaine à 9h, le 1er de chaque mois) et produit l’expression exacte avec une description en langage clair de ce qu’elle signifie.

Comment construire une expression cron

  1. 1

    Choisissez un préréglage ou saisissez les champs

    Chaque minute, chaque heure, quotidien à minuit, hebdomadaire le dimanche et le 1er de chaque mois sont à un clic. Pour le reste, saisissez directement les valeurs dans les cinq champs.

  2. 2

    Affinez le calendrier

    Minutes, heures, jours du mois, mois, jours de la semaine spécifiques. Plages (9-17), listes (1,15) et étapes (*/6) toutes prises en charge.

  3. 3

    Lisez l'expression

    Le générateur produit toujours le format cron standard à 5 champs, accompagné d'une description en langage clair du calendrier.

  4. 4

    Vérifiez le dialecte

    Les dialectes diffèrent (Quartz, AWS EventBridge, Kubernetes). Confirmez que l'expression correspond à ce que votre planificateur attend.

Les cinq champs

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── Jour de la semaine (0-6, dimanche=0, ou DIM-SAM)
│  │  │  └───── Mois (1-12, ou JAN-DEC)
│  │  └──────── Jour du mois (1-31)
│  └─────────── Heure (0-23)
└────────────── Minute (0-59)

Chaque champ accepte :

  • Un nombre spécifique : 5
  • Une liste : 1,15,30
  • Une plage : 9-17
  • Une étape : */10 (tous les 10) ou 0-30/5 (tous les 5 de 0 à 30)
  • Caractère générique : * (toute valeur)

Expressions courantes

Horaire Expression cron
Chaque minute * * * * *
Toutes les 15 minutes */15 * * * *
Chaque heure à l’heure 0 * * * *
Toutes les 6 heures 0 */6 * * *
Chaque jour à 2h30 AM 30 2 * * *
Chaque jour de la semaine à 9h 0 9 * * 1-5
Chaque lundi à 8h 0 8 * * 1
Premier jour de chaque mois, 3h 0 3 1 * *
Toutes les 15 minutes, 9-17 jours de semaine */15 9-17 * * 1-5
Midi le 1er et le 15 0 12 1,15 * *
Chaque dimanche à minuit 0 0 * * 0

Le piège jour du mois + jour de la semaine

Dans cron standard, si les deux jour du mois et jour de la semaine sont spécifiés (pas *), le travail s’exécute lorsque l’un ou l’autre correspond (OU, pas ET). 0 0 1 * LUN s’exécute le 1er de chaque mois et chaque lundi, pas seulement lorsque le 1er est un lundi.

Le cron Vixie et la plupart des distributions Linux suivent cette règle OU. Quartz (Java) et certains autres utilisent ET. En cas de doute, testez l’expression avec une exécution à blanc ou un travail de test dans votre planificateur.

Différences de dialecte

  • Cron standard (Linux) : 5 champs, jour de la semaine 0-6 (dimanche = 0 ou 7).
  • Quartz (Spring, applications Java) : 6-7 champs, avec secondes comme champ 1 et année optionnelle. Jour de la semaine 1-7 (dimanche = 1).
  • Cron AWS EventBridge : 6 champs, avec année. Jour de la semaine et jour du mois doivent être mutuellement exclusifs (l’un doit être ?).
  • GitHub Actions : cron standard à 5 champs, intervalle minimum de 5 minutes, uniquement UTC.
  • Kubernetes CronJob : cron standard à 5 champs, UTC par défaut.

Confirmez toujours quel dialecte votre planificateur utilise.

Fuseaux horaires

Le cron classique s’exécute dans le fuseau horaire local du serveur. Cela peut poser problème lors des transitions DST : un travail à 2h30 peut s’exécuter deux fois ou pas du tout les jours de changement. Les planificateurs modernes (timers systemd, Kubernetes, EventBridge) vous permettent de spécifier le fuseau horaire explicitement, utilisez UTC à moins que vous n’ayez une bonne raison de ne pas le faire.

Questions fréquentes

Chaque 5 unités du champ, en commençant par 0. Dans le champ des minutes, */5 s’exécute aux minutes 0, 5, 10, 15, …, 55. C’est une abréviation pour 0,5,10,15,20,25,30,35,40,45,50,55.

Cron ne peut pas exprimer des intervalles arbitraires qui ne se divisent pas uniformément en 60 minutes ou 24 heures. Pour 90 minutes, listez les heures d’exécution spécifiques : 0 0,9 * * * combiné avec des lignes supplémentaires, ou passez à un planificateur qui prend en charge des intervalles arbitraires (timers systemd, anacron).

À minuit. L’ordre des champs est minute-heure, donc 0 0 signifie “minute 0 de l’heure 0”. Midi serait 0 12 * * *.

Le cron standard l’ignore, les exécutions manquées ne sont pas réessayées. Anacron récupère les travaux quotidiens/hebdomadaires/mensuels manqués au prochain démarrage. Les CronJobs Kubernetes ont startingDeadlineSeconds et concurrencyPolicy pour gérer explicitement les fenêtres manquées.

Outils similaires