Aller au contenu
OpsKit

Analyseur d'expressions cron

Collez une expression cron et voyez quand elle se déclenche réellement. Chaque champ est détaillé et les horaires s'affichent dans le fuseau utilisé par votre ordonnanceur — c'est de là que viennent la plupart des mauvaises surprises avec cron.

Planifications courantes

Prochaines exécutions

Détail des champs

ChampValeurCorrespond à
Minute00
Heure99
Jour du mois*toutes les valeurs
Mois*toutes les valeurs
Jour de la semaine1-5lun, mar, mer, jeu, ven

Tout se passe dans votre navigateur. Cette page est un fichier statique. Ce que vous saisissez reste dans l'onglet, n'est jamais envoyé à un serveur et disparaît à la fermeture — coller un vrai jeton ou une vraie configuration ne présente donc aucun risque.

Quand cela sert

  • En écrivant un CronJob Kubernetes, pour confirmer qu'il se déclenche à 9 h locales et non à 9 h UTC.
  • En reprenant une crontab héritée où plus personne ne se souvient de ce que signifie 30 2 * * 0.
  • Pour vérifier qu'un traitement par lots et la fenêtre de sauvegarde n'entreront pas en collision le mois prochain.

Exemples concrets

Chaque jour ouvré à 09:00

Entrée
0 9 * * 1-5
Résultat
Du lundi au vendredi à 09:00

Le jour de la semaine va de 0 à 6, dimanche valant 0. 0 et 7 désignent tous deux le dimanche.

Toutes les 15 minutes aux heures de bureau

Entrée
*/15 9-18 * * 1-5
Résultat
09:00, 09:15 … 18:45, en semaine uniquement

Le pas s'applique à l'intérieur de la plage : l'exécution s'arrête après 18:45 au lieu de tourner toute la nuit.

Celle qui surprend tout le monde

Entrée
0 0 1 * MON
Résultat
Le 1er de chaque mois ET tous les lundis

Quand les deux champs de jour sont restreints, cron les combine avec un OU au lieu d'exiger les deux.

Là où l'on se trompe

Supposer que le conteneur utilise votre fuseau

Un CronJob Kubernetes sans champ timeZone utilise le fuseau du contrôleur, généralement UTC. Une planification à 09:00 s'exécute alors à 11:00 heure de Paris en été.

Lire `*/5` dans le champ des heures comme « toutes les cinq heures »

Un pas découpe toute la plage à partir de 0 : */5 dans le champ des heures signifie 0, 5, 10, 15 et 20 h — pas toutes les cinq heures à partir de maintenant.

Mélanger jour du mois et jour de la semaine

Restreindre les deux fait se déclencher la planification plus souvent, pas moins. Laissez l'un des deux à * sauf si vous voulez vraiment l'union.

Questions fréquentes

Combien de champs doit avoir une expression cron ?

Le cron Unix standard et les CronJob Kubernetes en utilisent 5 : minute, heure, jour du mois, mois, jour de la semaine. AWS EventBridge ajoute un sixième champ d'année et exige un ? dans l'un des deux champs de jour. Quartz place les secondes en tête, soit 6 ou 7.

Pourquoi mon CronJob Kubernetes se déclenche-t-il à la mauvaise heure ?

Sans spec.timeZone, la planification est interprétée dans le fuseau du kube-controller-manager — le plus souvent UTC. Définissez-le explicitement, ou écrivez la planification en UTC et documentez-le.

Que signifie @daily ?

C'est un raccourci pour 0 0 * * *, minuit chaque jour. Les autres raccourcis sont @hourly, @weekly, @monthly et @yearly. @reboot est différent : il s'exécute au démarrage et n'a pas de planification.

Outils liés