Explicateur d'expressions cron
Collez une expression cron et obtenez sa traduction en français clair. Prise en charge des formats standard à 5 et 6 champs (avec secondes).
Exemples (cliquez pour essayer)
0 0 * * *— quotidiennement à minuit*/5 * * * *— toutes les 5 minutes0 9 * * MON-FRI— matinées en semaine à 9 h0 0 1 * *— le 1er de chaque mois à minuit0 0 * * 0— chaque dimanche à minuit15 2 * * *— quotidiennement à 2 h 150 */6 * * *— toutes les 6 heures30 3 1-7 * 1— premier lundi du mois à 3 h 30
- Saisissez ou collez une expression cron dans le champ ci-dessus.
- Lisez l'explication en français qui s'affiche en dessous.
- Cliquez sur n'importe quel exemple pour le déposer dans le champ et voir son décodage.
- Corrigez toute erreur d'analyse affichée en rouge et itérez jusqu'à ce que l'explication corresponde à votre intention.
Que fait-il ?
L'explicateur prend une expression cron Unix standard (5 champs) ou une expression de style Quartz avec secondes (6 champs) et renvoie une description lisible telle que « à 09:00, du lundi au vendredi ». Il prend en charge les opérateurs courants — *, ',', -, et / — ainsi que les mois nommés (JAN-DEC) et les jours nommés (SUN-SAT). Le résultat est mis à jour à chaque frappe pour des itérations rapides.
Exemple
Une tâche en heures ouvrées typique :
0 9 * * MON-FRI Décodage :
à 09:00, du lundi au vendredi Une expression Quartz à 6 champs plus précise avec secondes :
0 30 2 ? * MON Décodage (chaque lundi à 02:30:00).
Format cron
┌───────── minute (0 - 59) │ ┌─────── heure (0 - 23) │ │ ┌───── jour du mois (1 - 31) │ │ │ ┌─── mois (1 - 12, ou JAN-DEC) │ │ │ │ ┌─ jour de la semaine (0 - 6, ou SUN-SAT ; 0 et 7 désignent dimanche) │ │ │ │ │ * * * * *
Pourquoi cron « 0 0 * * * » se déclenche-t-il à minuit UTC et pas à mon heure locale ?
La plupart des vrais bogues cron relèvent de quelques pièges récurrents :
- Décalage de fuseau horaire. 0 0 * * * se déclenche à minuit dans le fuseau horaire du planificateur. Sur Kubernetes CronJob et GitHub Actions, la valeur par défaut est UTC — définissez spec.timeZone, ou convertissez l'heure en UTC vous-même.
- Confusion 5 champs contre 6 champs. Coller 0 0 9 * * MON-FRI (6 champs) dans un planificateur à 5 champs lit le premier 0 comme minute et le second comme heure, donc le job se lance à minuit et non à 09:00.
- Jour du mois et jour de la semaine combinés. 0 0 15 * MON tourne le 15 de chaque mois ET chaque lundi — pas seulement le lundi qui tombe un 15. C'est la sémantique OR de Vixie-cron.
- Le step ne redémarre pas au déploiement. */10 * * * * se déclenche à :00, :10, :20, :30, :40, :50 sur l'horloge — pas dix minutes après votre dernier déploiement.
- Utiliser ? dans du cron standard. L'espace réservé ? est une extension Quartz. Unix cron le rejette — utilisez * à la place.
- Jour de la semaine 0 contre 7. Les deux désignent dimanche en cron classique, mais certains parseurs (ancien BSD) n'acceptent que 0. Si la portabilité compte, utilisez SUN.
Opérateurs
*— toute valeur,— liste de valeurs (p. ex. MON,WED,FRI)-— plage (p. ex. 1-5)/— valeurs step (p. ex. */15 = toutes les 15)
Questions fréquentes
Quelle est la différence entre cron 5 champs et 6 champs ?
Le cron POSIX standard a 5 champs : minute, heure, jour du mois, mois, jour de la semaine. La variante à 6 champs ajoute un champ secondes au début et est utilisée par Quartz, Spring @Scheduled et de nombreuses bibliothèques cron Node. Une expression 6 champs « 0 0 9 * * MON-FRI » se déclenche à 9:00:00 en semaine, tandis que la version 5 champs « 0 9 * * MON-FRI » se déclenche à 9:00.
Prend-il en charge les extensions Quartz comme L, W et # ?
Cet explicateur prend en charge le dialecte Unix / Vixie cron courant plus un champ secondes optionnel au début. Les jetons propres à Quartz (L pour dernier, W pour jour ouvré, # pour nième jour de la semaine, et l'espace réservé ?) ne font pas partie du cron standard et leur analyse n'est pas garantie. Si vous en dépendez, vérifiez l'expression dans la documentation de votre planificateur.
Pourquoi 0 0 * * * se déclenche-t-il à une heure différente de celle que j'attends ?
Les expressions cron n'ont pas de fuseau horaire. Le job tourne à minuit dans le fuseau horaire de la machine ou du conteneur qui exécute le planificateur. Sur Kubernetes CronJob, GitHub Actions et AWS EventBridge, cela vaut UTC par défaut. Pour minuit local, fixez explicitement le fuseau horaire du planificateur (spec.timeZone sur CronJob, variable TZ, clé timezone dans cron.yaml).
Puis-je combiner jour du mois et jour de la semaine ?
En Vixie cron standard, si jour du mois et jour de la semaine sont tous deux restreints, le job se déclenche dès que l'un correspond — c'est un OU, pas un ET. Donc « 0 0 15 * MON » tourne le 15 de chaque mois ET chaque lundi. Quartz inverse la convention et exige que l'un des deux champs soit « ? » pour lever l'ambiguïté.
Comment fonctionnent les valeurs step ?
Un step utilise la syntaxe plage/step. « */15 * * * * » se déclenche toutes les 15 minutes à partir de :00. « 10-50/20 » dans le champ minutes se déclenche à :10, :30, :50. step ne signifie pas « toutes les N à partir de maintenant » — les bornes sont toujours alignées sur le début de la plage, step ne dérive donc pas avec l'heure actuelle.
Enregistrez-vous les expressions cron que je teste ici ?
Non. Nous ne conservons aucune trace des expressions tapées. Ce que vous collez ou expérimentez est supprimé à la fermeture ou au rafraîchissement de la page — aucun journal, aucune analyse des planifications sur lesquelles vous travaillez. Vous pouvez le vérifier dans les outils de développement de votre navigateur.