Générateur et analyseur d’expressions cron
Collez n’importe quelle expression cron pour la voir expliquée en français simple, avec ses prochaines
heures d’exécution, ou construisez-en une avec les menus déroulants ci-dessous. Plages, pas, listes,
noms de mois et de jours de la semaine, macros de type @daily : tout est pris en charge.
Tout fonctionne dans votre navigateur — rien n’est envoyé.
Toutes les 15 minutes.
Construire avec les menus déroulants
Comment fonctionne l’outil
Tapez ou collez une expression cron dans la zone : elle est analysée dès que vous arrêtez de taper. Les cinq champs sont validés, traduits en une phrase lisible et utilisés pour calculer les prochaines heures auxquelles la tâche se déclencherait — le tout dans votre navigateur, sans aller-retour avec un serveur. Vous préférez partir de zéro ? Ouvrez Construire avec les menus déroulants, choisissez une fréquence, et une expression valide est écrite pour vous dans la zone. Les boutons de préréglage remplissent les planifications les plus courantes en un clic.
Les cinq champs cron
| Position | Champ | Valeurs autorisées | Caractères spéciaux |
|---|---|---|---|
| 1 | Minute | 0–59 | * , - / |
| 2 | Heure | 0–23 | * , - / |
| 3 | Jour du mois | 1–31 | * , - / |
| 4 | Mois | 1–12 ou JAN–DEC | * , - / |
| 5 | Jour de la semaine | 0–7 ou SUN–SAT (0 et 7 = dimanche) | * , - / |
Caractères spéciaux
| Symbole | Signification | Exemple |
|---|---|---|
* | Toutes les valeurs du champ. | * dans le champ heure = toutes les heures |
, | Une liste de valeurs précises. | 1,15,30 = aux minutes 1, 15 et 30 |
- | Une plage de valeurs, bornes incluses. | 9-17 dans le champ heure = de 9 h du matin à 5 h de l’après-midi |
/ | Un pas — « toutes les n » valeurs à partir du début de la plage. | */15 = toutes les 15 minutes ; 5-59/20 = 5, 25, 45 (5/20 fonctionne aussi dans de nombreux planificateurs, mais pas dans cronie) |
Expressions cron courantes
| Expression | Signification |
|---|---|
*/15 * * * * | Toutes les 15 minutes |
0 * * * * | Au début de chaque heure |
30 2 * * * | Chaque jour à 02:30 |
0 9 * * 1-5 | À 09:00 en semaine (lun.–ven.) |
0 0 1 * * | À minuit le 1er de chaque mois |
0 0 * * 0 | À minuit chaque dimanche |
0 22 * * 1-5 | À 22:00 en semaine |
0 0 1 1 * | À minuit le 1er janvier (chaque année) |
Macros de raccourci
De nombreuses implémentations de cron acceptent quelques raccourcis nommés à la place des cinq champs. Cet outil les développe avant l’analyse, si bien qu’ils sont expliqués et planifiés exactement comme l’expression équivalente :
| Macro | Équivalent |
|---|---|
@yearly / @annually | 0 0 1 1 * |
@monthly | 0 0 1 * * |
@weekly | 0 0 * * 0 |
@daily / @midnight | 0 0 * * * |
@hourly | 0 * * * * |
Le piège jour du mois / jour de la semaine
L’erreur cron la plus fréquente consiste à croire que renseigner à la fois un jour du mois et un jour
de la semaine signifie « les deux doivent correspondre ». Ce n’est pas le cas. Lorsque aucun des deux
champs ne commence par *, cron se déclenche dès que l’un ou l’autre
correspond. Par exemple, 0 0 13 * 5 s’exécute à minuit le 13 de chaque mois et
chaque vendredi — pas seulement le vendredi 13. Pour cibler un jour de la semaine, laissez le jour du
mois à * ; pour cibler une date, laissez le jour de la semaine à *. Un champ
qui commence par * — même un pas comme */2 — signifie de nouveau « les deux
doivent correspondre » : 0 0 */2 * 1 ne s’exécute donc que les lundis qui tombent à une
date impaire. L’explication ci-dessus écrit volontairement « ou » dès que cette règle du OU logique s’applique,
pour que vous repériez le piège avant de déployer la tâche.
Où les expressions cron sont utilisées
La même syntaxe à cinq champs pilote les tâches crontab d’Unix/Linux, les ressources
CronJob conteneurisées de Kubernetes, les planifications CI/CD (GitHub Actions, GitLab CI)
et d’innombrables exécuteurs de tâches et frameworks applicatifs. Comme la notation est partagée, savoir
lire une ligne cron d’un coup d’œil — et confirmer exactement quand elle s’exécutera — est une
compétence réellement transposable. Notez que certains systèmes ajoutent un sixième champ pour les
secondes au début, ou un champ année à la fin ; cet outil analyse la forme classique à cinq champs.
AWS EventBridge est l’un de ces systèmes : son cron compte six champs terminés par une année, exige un
? dans l’un des deux champs de jour et numérote les jours de la semaine de 1 à 7 à partir du dimanche.
Questions fréquentes
- Quels sont les cinq champs d’une expression cron ?
- Une expression cron standard comporte cinq champs séparés par des espaces, lus de gauche à droite : 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 désignent tous deux le dimanche). Chaque champ accepte une valeur unique, une liste séparée par des virgules, une plage avec un trait d’union, un pas écrit avec une barre oblique, ou un astérisque signifiant « toutes les valeurs ». La planification se déclenche chaque fois que l’heure courante correspond à tous les champs. Le mois et le jour de la semaine peuvent aussi s’écrire avec des noms de trois lettres, comme JAN ou MON.
- Que signifie */5 dans une expression cron ?
- La barre oblique introduit un pas : */5 dans le champ des minutes signifie donc « une minute sur 5 » — c’est-à-dire aux minutes 0, 5, 10, 15, et ainsi de suite. La partie placée avant la barre oblique fixe le point de départ et la plage : */5 part de 0, tandis que 5/15 part de la minute 5 puis ajoute 15 à chaque fois (5, 20, 35, 50) — Vixie cron et cronie n’acceptent un pas qu’après * ou après une plage : écrivez-y donc 5-59/15. Les pas se combinent aussi avec les plages — 9-17/2 dans le champ des heures s’exécute toutes les deux heures entre 9 h du matin et 5 h de l’après-midi. Un pas qui ne divise pas le champ en parts égales repart du début : */7 dans le champ des minutes donne 0, 7 … 56 puis de nouveau 0, si bien que le dernier intervalle n’est que de 4 minutes.
- Pourquoi le jour du mois et le jour de la semaine peuvent-ils interagir de façon inattendue ?
- Lorsque le jour du mois ET le jour de la semaine sont tous deux restreints (aucun des deux ne commence par un astérisque), cron exécute la tâche dès que L’UN OU L’AUTRE correspond, et non quand les deux correspondent. Ainsi, 0 0 13 * 5 signifie « à minuit le 13 du mois, et aussi chaque vendredi » — et pas uniquement le vendredi 13. Si vous voulez une tâche qui ne s’exécute qu’un jour de la semaine précis, laissez le jour du mois à * ; si vous voulez une date précise, laissez le jour de la semaine à * . Un champ qui commence par un astérisque, même un pas comme */2, ramène cron à la règle « les deux doivent correspondre » : 0 0 */2 * 1 ne s’exécute donc que les lundis qui tombent à une date impaire. Cet analyseur suit la même règle que Vixie cron et cronie, et l’explication en français simple écrit « ou » chaque fois qu’elle s’applique, pour que le piège soit visible.
- Dans quel fuseau horaire les « prochaines exécutions » sont-elles affichées ?
- Par défaut, les prochaines heures d’exécution sont calculées dans le fuseau horaire local de votre propre appareil, parce que c’est ce que la plupart des gens veulent voir et que cela ne demande aucun serveur. Un vrai démon cron, en revanche, tourne dans le fuseau horaire configuré sur le serveur (souvent UTC). Si votre serveur utilise un autre fuseau horaire, choisissez-le dans la liste « Fuseau horaire » : les heures d’exécution sont alors recalculées sur l’horloge de ce fuseau et affichées à l’heure de ce fuseau. Le calcul lui-même se fait entièrement dans votre navigateur — l’expression n’est jamais envoyée nulle part.
- L’outil prend-il en charge @daily, @hourly et les autres raccourcis ?
- Oui. Les macros nommées @yearly (et son alias @annually), @monthly, @weekly, @daily (et son alias @midnight) et @hourly sont développées en leur équivalent à cinq champs avant l’analyse : elles sont donc expliquées et planifiées exactement comme une expression normale. @reboot est reconnue mais n’a pas d’horaire fixe — elle s’exécute une seule fois au démarrage du système —, si bien qu’aucune heure d’exécution ne peut être listée pour elle.
- Mon expression cron est-elle envoyée à un serveur ?
- Non. L’analyse, l’explication en français simple et le calcul des prochaines exécutions se font localement dans votre navigateur, en JavaScript pur. Rien n’est envoyé ni stocké : vous pouvez donc l’utiliser sans risque avec des planifications de tâches internes, et l’outil fonctionne hors ligne une fois la page chargée.