Décodeur d'expressions cron
Données
| Expression cron | 0 9 * * 1-5 |
|---|
Décodeur d'expressions cron
Décodez une expression cron à 5 champs ou @raccourci : description lisible de la planification et trois prochaines exécutions en UTC.
Données
Expression cron
Résultats
Saisissez une valeur pour afficher les résultats.
Planification
3 prochaines exécutions (UTC)
Expression cron : définition et syntaxe
Une expression cron est une chaîne à cinq champs qui planifie des tâches récurrentes sur les systèmes Unix et apparentés. Chaque champ représente une unité de temps, et l'ordonnanceur déclenche la tâche dès que les cinq champs correspondent à l'horloge courante. Le format est le suivant :
| Champ | Position | Valeurs autorisées | Caractères spéciaux |
|---|---|---|---|
| Minute | 1 | 0–59 | * / , - |
| Heure | 2 | 0–23 | * / , - |
| Jour du mois | 3 | 1–31 | * / , - |
| Mois | 4 | 1–12 | * / , - |
| Jour de la semaine | 5 | 0–7 (0 et 7 = dimanche) | * / , - |
Caractères spéciaux
*– correspond à toutes les valeurs du champ (« toutes les heures », « tous les jours »)*/n– pas ; correspond à chaque n-ième valeur (ex.*/15dans le champ minute = toutes les 15 minutes)a-b– plage ; correspond à toutes les valeurs de a à b inclus (ex.1-5dans le champ jour de la semaine = du lundi au vendredi)a,b,c– liste ; correspond à chacune des valeurs listées (ex.1,15dans le champ jour du mois = le 1er et le 15)a-b/n– plage avec pas ; ex.10-50/10correspond à 10, 20, 30, 40, 50
Exemples courants
| Expression | Signification |
|---|---|
* * * * * | Chaque minute |
*/15 * * * * | Toutes les 15 minutes |
0 * * * * | Au début de chaque heure |
0 9 * * 1-5 | 09:00 UTC les jours ouvrés |
30 17 * * 5 | 17:30 UTC chaque vendredi |
0 0 1 * * | Minuit UTC le 1er de chaque mois |
0 0 1 1 * | Minuit UTC le 1er janvier chaque année |
0 0 * * 0 | Minuit UTC chaque dimanche |
@raccourcis
La plupart des implémentations cron acceptent des alias pratiques :
| Raccourci | Expression équivalente |
|---|---|
@yearly / @annually | 0 0 1 1 * |
@monthly | 0 0 1 * * |
@weekly | 0 0 * * 0 |
@daily / @midnight | 0 0 * * * |
@hourly | 0 * * * * |
Interaction entre jour du mois et jour de la semaine
Lorsque le jour du mois et le jour de la semaine sont tous deux restreints (aucun n'est *), cron applique une sémantique OU : la tâche se déclenche si l'une ou l'autre condition est vraie. Par exemple :
0 0 1 * 1
Cette expression se déclenche à minuit le 1er de chaque mois ET chaque lundi — pas seulement les lundis qui tombent le 1er. Ce comportement est défini par POSIX et mis en œuvre par Vixie cron, l'implémentation la plus répandue.
Si un seul des deux champs est restreint, l'autre n'a aucun effet : la tâche s'exécute simplement tous les jours correspondant au champ restreint.
Fonctionnement de l'ordonnancement cron
Chaque minute, l'ordonnanceur vérifie si l'heure courante correspond aux cinq champs. Si c'est le cas, la tâche est déclenchée. La granularité étant d'une minute, le plus petit intervalle possible entre deux exécutions est une minute.
L'ordonnanceur ne rattrape pas les exécutions manquées par défaut. Si un serveur est hors ligne au moment d'une exécution planifiée, celle-ci est simplement ignorée. Certains ordonnanceurs — comme les Kubernetes CronJobs — disposent d'un paramètre startingDeadlineSeconds pour récupérer les exécutions manquées dans une fenêtre de temps définie.
Considérations sur les fuseaux horaires
La plupart des implémentations cron interprètent les expressions dans le fuseau horaire local du serveur. Les serveurs configurés en UTC déclenchent les tâches exactement aux moments indiqués par les expressions UTC. Les serveurs dans d'autres fuseaux décalent l'heure de déclenchement en conséquence.
Les Kubernetes CronJobs et les planifications GitHub Actions interprètent tous deux les expressions cron en UTC. Ce calculateur affiche les prochaines exécutions en UTC ; si votre système utilise un autre fuseau horaire, ajustez en appliquant le décalage UTC correspondant.
Questions fréquentes (FAQ)
Que représentent les cinq champs d'une expression cron ?
Une expression cron comprend cinq champs séparés par des espaces, dans cet ordre : minute (0–59), heure (0–23), jour du mois (1–31), mois (1–12) et jour de la semaine (0–7, où 0 et 7 représentent tous deux le dimanche). Chaque champ accepte une valeur précise, un joker (), une plage (1-5), un pas (/15), une liste (1,15) ou une combinaison telle que 1-5/2.
Les @raccourcis suivants se développent en leur expression à 5 champs équivalente : @yearly (0 0 1 1 *), @monthly (0 0 1 * *), @weekly (0 0 * * 0), @daily (0 0 * * *) et @hourly (0 * * * *).
Comment le jour du mois et le jour de la semaine interagissent-ils ?
Lorsque le jour du mois et le jour de la semaine sont tous deux restreints (aucun n'est *), cron applique une sémantique OU : la tâche s'exécute si l'une ou l'autre condition est satisfaite. Par exemple, "0 0 1 * 1" se déclenche le 1er de chaque mois ET chaque lundi — pas seulement les lundis qui tombent le 1er. Si un seul des deux champs est restreint, la tâche ne s'exécute qu'aux jours correspondant à ce champ.
Les prochaines exécutions sont-elles affichées dans mon fuseau horaire local ?
Ce calculateur affiche toutes les prochaines exécutions en UTC. La plupart des implémentations cron — crontab sous Linux, Kubernetes CronJobs, planifications GitHub Actions — interprètent l'expression dans le fuseau horaire local du serveur ou en UTC. Si votre démon cron fonctionne en UTC, les horaires indiqués ici correspondent exactement. Dans le cas contraire, ajoutez ou soustrayez le décalage UTC de votre fuseau pour convertir.