Générateur d’expression cron :
à quelle heure va-t-elle s’exécuter ?
Choisissez une fréquence et une heure. Le générateur écrit l’expression à cinq champs, la relit en français, et liste les dix prochaines dates d’exécution — pour vérifier la planification avant qu’elle n’atteigne une crontab, pas après l’exécution de 03:30.
Lire 30 3 * * 1-5
Chaque expression cron répond aux cinq mêmes questions, de gauche à droite — ici sur une planification réelle.
Lu comme une phrase : du lundi au vendredi, à 03:30. 30 3 * * 1-5
Voir la planification avant que cron ne l’exécute
La plupart des expressions cron sont d’abord testées par l’exécution de 03:30 en production. Ce générateur déplace ce test dans votre navigateur :
- Des questions structurées, pas des suppositions. Fréquence, jour, heure — chaque ambiguïté de la version en langage courant devient un contrôle explicite.
- Les dix prochaines exécutions, calculées. Un véritable analyseur parcourt le calendrier pour que vous lisiez la planification comme des dates, pas comme de la syntaxe.
- Une sortie POSIX portable. Cinq champs, uniquement des chiffres — fonctionne sur n’importe quel crontab, d’Alpine à AIX. Les symboles exotiques restent signalés, jamais générés.
Une expression cron, champ par champ
*/15 9-17 * * 1-5Ce que signifient *, */5 et @daily
Cinq fonctionnent dans n’importe quel crontab. Le sixième est réservé à Quartz et ne s’installera pas.
Correspond à tout — la valeur par défaut, et la plus bruyante. Dans le champ des minutes, cela veut dire soixante exécutions par heure, l’origine typique du ticket « pourquoi ça a tourné 60 fois ».
Un pas — une valeur sur 5. Les pas ne se reportent pas d’un champ à l’autre : */90 dans le champ des minutes devient silencieusement « à :00 » — une cadence de 90 minutes exige deux lignes.
Une plage — lun.–ven. dans le champ jour de la semaine, 9–17 dans le champ heure. Combinable avec une liste : 1-5,0 désigne les jours ouvrables plus le dimanche.
Une liste — des valeurs exactes, séparées par des virgules. La façon portable de dire « deux fois par heure » ou « janvier, avril, juillet, octobre ».
Des raccourcis — @hourly @daily @weekly @reboot. Pratiques là où ils sont pris en charge, mais @reboot se déclenche au démarrage du démon cron, ce qui n’est pas toujours un redémarrage complet de la machine.
Pas du cron. # L W ? appartiennent à Quartz — Jenkins, Spring, certains outils CI. Collez-les dans un crontab et la ligne ne s’installera pas.
Des planifications cron prêtes à l’emploi
Chacune est du POSIX valide. Pour les cas plus rares, comme « chaque 2 mars à 17h30 », consultez notre cron examples library.
Les pièges cron les plus courants
Les deux sont calculés en direct, dans votre navigateur — sans aller-retour serveur.
Questions fréquentes sur les expressions cron
Il transforme une planification que vous pouvez formuler à voix haute, comme « chaque jour ouvrable à neuf heures », en l’expression à cinq champs que cron lit : 0 9 * * 1-5. Celui-ci va plus loin. Il relit l’expression en français et calcule ses dix prochaines exécutions, pour que vous vérifiiez la planification sous forme de dates. Il repère aussi les deux pièges classiques : la règle OU des champs de jour, et l’erreur de l’étoile à la place d’un zéro.
De gauche à droite : minute (0–59), heure (0–23), jour du mois (1–31), mois (1–12), jour de la semaine (0–7, où 0 et 7 désignent tous deux dimanche). Chaque champ accepte un chiffre, une liste (0,30), une plage (1-5), un pas (*/15), ou * pour « n’importe lequel ». Certains ordonnanceurs ajoutent un sixième champ pour les secondes (Quartz, Spring) — un crontab ne l’acceptera pas.
Pas en une seule ligne — les pas ne reportent pas leur reste d’un champ à l’autre, donc */90 dans le champ des minutes signifie simplement « à :00 ». La solution : deux lignes de crontab qui s’entrelacent : 0 0-21/3 * * * (00:00, 03:00, 06:00…) plus 30 1-22/3 * * * (01:30, 04:30, 07:30…) — ensemble, toutes les 90 minutes. La même astuce couvre toute cadence qui ne divise pas 60.
Parce que le champ des minutes valait *. * 3 * * * signifie « chaque minute où l’heure vaut 3 » — de 03:00 à 03:59, soit soixante exécutions. Ce que vous vouliez, c’était 0 3 * * *. C’est l’erreur cron classique, et la raison pour laquelle cet outil écrit toujours une minute explicite, sauf si vous choisissez littéralement « chaque minute ».
Cron se déclenche dès que l’un ou l’autre correspond — une union, pas une intersection. C’est écrit dans la spécification POSIX, et cela piège régulièrement. Prenez 0 9 1-7 * 1, une tentative naturelle pour dire « le premier lundi du mois ». Elle s’exécute les jours 1 à 7 et chaque lundi : 10 ou 11 matins par mois au lieu d’un seul. La vue consacrée au piège, sur cette page, calcule les deux lectures côte à côte, et montre la solution portable.
L’heure locale du serveur — cron n’a pas de champ fuseau horaire. Si la machine tourne en UTC (le cas de la plupart des images cloud), 09:00 dans le crontab est 09:00 UTC. Certains cron (cronie sur RHEL/Fedora, FreeBSD) respectent une ligne CRON_TZ= ; le vixie-cron classique de Debian, lui, l’ignore. Attention aussi au changement d’heure si le serveur tourne sur un fuseau local : les nuits de bascule, 02:30 peut se produire deux fois — ou jamais. Planifier en dehors de 01:00–03:00, ou garder les serveurs en UTC, évite complètement le problème.
Cron journalise le démarrage de la tâche ; rien d’intégré ne vous dit qu’elle a réussi. Trois niveaux : rediriger la sortie vers un journal (>> /var/log/job.log 2>&1), définir MAILTO= vers une adresse que quelqu’un lit, puis poser une vérification indépendante sur le résultat. Ce troisième niveau fonctionne partout où le résultat produit est visible de l’extérieur : une page régénérée, un certificat renouvelé, un plan de site. La vue consacrée aux échecs silencieux, sur cette page, détaille tout ce mode de défaillance.
Continuer l'exploration
Les outils gratuits, c'est un début.
Uptimia veille sur la santé de vos sites.
Disponibilité, SSL, expiration de domaine, vitesse de page, transactions — surveillés depuis 171+ emplacements dans le monde. 30 jours gratuits.