Comprendre une expression cron avant son exécution
Les expressions cron sont des chaînes de planification compactes utilisées par les serveurs, les jobs CI, les plateformes d'automatisation et les scripts de maintenance. Elles sont puissantes, mais une petite faute de frappe peut transformer une tâche quotidienne en une tâche chaque minute, ou des jours de semaine en week-ends.
Ce parseur explique une expression cron Unix à 5 champs en langage clair, détaille chaque champ et affiche les prochaines exécutions en utilisant le fuseau horaire que vous choisissez dans l'outil.
Dialecte cron pris en charge
Le parseur v1 prend en charge le cron Unix standard avec cinq champs :
minute heure jour-du-mois mois jour-de-la-semaine - Valeurs des minutes de
0to59. - Valeurs des heures de
0to23. - Valeurs du jour du mois de
1to31. - Valeurs du mois de
1to12, plus des noms tels queJANandDEC. - Valeurs du jour de la semaine de
0to7, plus des noms tels queMONandFRI. Les deux0and7signifient dimanche.
Il prend en charge les jokers, les listes séparées par des virgules, les plages et les valeurs pas-à-pas telles que */15 or 9-17/2.
Ce qui n'est volontairement pas pris en charge
Les dialectes cron ne sont pas universels. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions et les plateformes d'hébergement peuvent ajouter leurs propres champs ou opérateurs spéciaux.
- Les champs secondes et les champs années ne sont pas analysés comme du cron Unix.
- Opérateurs Quartz tels que
?,L,W, et#sont signalés comme non pris en charge. - Macros telles que
@dailyand@rebootne sont pas développés. - Le texte de commande après une planification n'est pas traité comme faisant partie de l'expression.
Utilisez cette page comme un inspecteur pour les planifications de type Unix. Avant de modifier l'automatisation en production, vérifiez le planificateur exact qui exécutera le job.
Fuseau horaire et comportement de l'heure d'été
Une expression cron n'inclut pas de fuseau horaire en elle-même. La même expression peut s'exécuter à des moments différents selon que le serveur utilise UTC, un fuseau horaire système local ou un réglage de fuseau horaire spécifique au planificateur.
- L'aperçu affiche les heures d'exécution dans le fuseau IANA sélectionné et en UTC.
- Les transitions de passage à l'heure d'été peuvent sauter des heures locales qui n'existent pas.
- Les transitions de retour d’heure peuvent répéter une heure locale ; le comportement du planificateur peut varier.
- Si le jour du mois et le jour de la semaine sont tous deux restreints, le cron Unix utilise communément une sémantique OU.
Pour les tâches critiques, considérez l'aperçu comme un outil de planification et confirmez le comportement dans le planificateur lui-même.
Foire aux questions
Est-ce que cela prend en charge Quartz cron ?
Non. Le parseur prend en charge uniquement le cron Unix à 5 champs. Les champs secondes au style Quartz, les champs année et les opérateurs tels que ?, L, W, et # sont indiqués comme non pris en charge.
Quel fuseau horaire utilise une expression cron ?
Les expressions cron ne contiennent pas d'information de fuseau horaire. L'aperçu utilise le fuseau horaire sélectionné dans l'outil, mais votre serveur ou planificateur peut utiliser un fuseau horaire différent.
Pourquoi le jour du mois et le jour de la semaine peuvent-ils tous deux correspondre ?
Dans le comportement courant du cron Unix, lorsque les deux champs sont restreints, une date peut correspondre si l'un ou l'autre champ correspond. Par exemple, 0 0 1 * MON peut s’exécuter le premier jour du mois et les lundis.
Puis-je coller la partie commande provenant d'un crontab ?
Collez uniquement les cinq champs de planification. L'outil est un parseur d'horaires, pas un parseur complet de crontab, donc le texte de commande après la planification n'est pas interprété.