Aller au contenu

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.

Syntaxe cron

Lire 30 3 * * 1-5

Chaque expression cron répond aux cinq mêmes questions, de gauche à droite — ici sur une planification réelle.

30 minute 0 – 59 à la demie
3 heure 0 – 23 3 h du matin, heure du serveur
* jour du mois 1 – 31 n’importe quelle date
* mois 1 – 12 n’importe quel mois
1-5 jour de la semaine 0 – 7 · 0 et 7 = dim. lundi – vendredi

Lu comme une phrase : du lundi au vendredi, à 03:30. 30 3 * * 1-5

Du langage courant à crontab

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-5
*/15minute — tous les quarts d’heure : :00, :15, :30, :454× / heure
9-17heure — une plage : 09:00 à 17:459 heures
*jour du mois — sans restrictionquelconque
*mois — sans restrictionquelconque
1-5jour de la semaine — du lundi au vendredijours ouvrables
La phrase complète : toutes les 15 minutes, 09:00–17:45, lun.–ven. Vous voulez le sens inverse, pour une expression que vous n’avez pas écrite ? C’est notre cron translator.
Symboles cron

Ce 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 ».

→ pour une seule exécution, écrivez un chiffre
*/5

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.

→ un pas ne vit que dans un seul champ
1-5

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.

→ plages et listes se combinent librement
0,30

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 ».

→ listez exactement les valeurs voulues
@daily

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.

→ cinq champs numériques fonctionnent avec tous les cron
MON#1

Pas du cron. # L W ? appartiennent à Quartz — Jenkins, Spring, certains outils CI. Collez-les dans un crontab et la ligne ne s’installera pas.

→ un crontab n’accepte que 5 champs POSIX
Recettes à copier-coller

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.

Chaque minute* * * * *
Toutes les 5 minutes*/5 * * * *
Toutes les heures, pile0 * * * *
Toutes les 2 heures0 */2 * * *
Chaque nuit à 03:3030 3 * * *
Jours ouvrables à 09:000 9 * * 1-5
Dimanches à 02:000 2 * * 0
1er du mois, 06:000 6 1 * *
Trimestriel (janv. · avr. · juil. · oct., le 1er)0 6 1 1,4,7,10 *
FAQ

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.

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.

30 jours gratuits sans carte bancaire résiliable à tout moment plan gratuit après l'essai
100 000+ sites surveillés · conforme au RGPD