Générateur d'expressions Cron
Créez une expression cron simplement en choisissant minute, heure, jour, mois et jour de la semaine dans des menus déroulants et des champs numériques. Prévisualisez instantanément la chaîne cron générée, une description en langage clair et les 5 prochaines exécutions — utile pour écrire une crontab ou la planification GitHub Actions.
Référence rapide des horaires courants
Une liste d'expressions cron pour des horaires typiques. Cliquez sur une ligne pour l'appliquer comme préréglage dans le générateur ci-dessus.
| Préréglage | Expression cron | Signification |
|---|---|---|
| Chaque jour à minuit | 0 0 * * * | S'exécute tous les jours à minuit (00:00). |
| En semaine à 9h | 0 9 * * 1-5 | S'exécute à 9h en semaine (du lundi au vendredi). |
| Chaque heure, à la minute 0 | 0 * * * * | S'exécute une fois par heure, à la minute 0. |
| Chaque lundi | 0 0 * * 1 | S'exécute chaque lundi à minuit (00:00). |
Ce qu'est une expression cron
Une expression cron, ce sont les cinq champs numériques qui indiquent au planificateur de tâches d'un système UNIX à quel moment exécuter quelque chose. De gauche à droite : minute, heure, jour du mois, mois et jour de la semaine, séparés par des espaces, comme dans `30 3 * * 1`, qui signifie « tous les lundis à 3 h 30 du matin ». La notation est très compacte, et c'est justement là sa faiblesse : un champ mal saisi reste le plus souvent valide sur le plan syntaxique, si bien que la tâche s'exécute silencieusement au mauvais moment et que personne ne s'en aperçoit avant longtemps.
Cet outil vous laisse régler chacun des cinq champs selon l'un des cinq modes possibles — toutes les valeurs, une valeur précise, une liste, une plage ou un pas — et affiche à la fois l'expression obtenue et sa lecture en français courant. Comme vous parcourez sur le même écran le chemin des saisies vers l'expression et celui de l'expression vers la phrase, vous pouvez vérifier que ce qui est écrit correspond bien à ce que vous vouliez avant que cela n'atteigne un serveur. Tout le traitement se fait dans votre navigateur : rien de ce que vous saisissez n'est envoyé ailleurs.
Comment construire une expression cron
- Partez d'un modèle Choisissez le plus proche parmi les quatre proposés — minuit chaque jour, 9 h en semaine, toutes les heures pile, ou chaque lundi — et les champs se remplissent d'eux-mêmes. C'est plus rapide que de tout construire et cela laisse moins de place aux étourderies.
- Sélectionnez un mode par champ Pour la minute, l'heure, le jour, le mois et le jour de la semaine, choisissez toutes les valeurs (*), une valeur précise, une liste, une plage ou un pas (*/n). Laissez sur « toutes les valeurs » les champs qui ne vous concernent pas.
- Saisissez les valeurs Une liste attend des nombres séparés par des virgules, une plage un début et une fin, un pas l'intervalle souhaité. Les minutes vont de 0 à 59, les heures de 0 à 23, les jours de 1 à 31, les mois de 1 à 12 et les jours de la semaine de 0 à 6, 0 désignant le dimanche.
- Confrontez l'expression et la description Lisez côte à côte l'expression produite et la phrase qui figure en dessous. Si la phrase ne correspond pas à votre intention, corrigez le champ fautif.
- Collez-la dans votre crontab Une fois la lecture satisfaisante, copiez l'expression, ouvrez votre table avec `crontab -e`, placez-la en début de ligne et écrivez ensuite la commande à exécuter.
Astuces pour en tirer le meilleur parti
- En réglant le champ jour de la semaine sur le mode « Plage » de 1 à 5, vous obtenez du lundi au vendredi en une seule étape.
- Le mode « Liste » permet de saisir plusieurs valeurs séparées par des virgules ; par exemple, saisir « 0,15,30,45 » dans le champ des minutes équivaut à une exécution toutes les 15 minutes.
- Si le jour du mois et le jour de la semaine sont tous deux réglés sur une valeur autre que « Chaque (*) », le cron standard les traite comme une condition OU : la tâche s'exécute si l'une des deux conditions est remplie.
- L'expression cron générée peut être copiée dans le presse-papiers grâce au bouton « Copier », prête à être collée directement dans une crontab ou un fichier YAML GitHub Actions.
- Cliquez sur un bouton de préréglage, ou sur une ligne du tableau de référence rapide ci-dessous, pour appliquer un horaire courant au générateur en un clic.
Dans quelles situations cet outil sert
Planifier des sauvegardes et des traitements par lots
Les exports de base de données et l'agrégation des journaux se placent généralement aux heures creuses. Vous pouvez composer un « chaque jour à 3 h 05 » sans avoir à vous remémorer la syntaxe au préalable.
N'exécuter que les jours ouvrés
Fixer le champ du jour de la semaine sur la plage 1–5 limite la tâche aux jours ouvrés. Cron ignore tout des jours fériés : pour les exclure, placez la vérification dans votre propre script.
Déchiffrer une expression écrite par quelqu'un d'autre
Lorsque vous reprenez un serveur dont le crontab contient quelque chose comme `*/15 2-5 * * *`, reproduire ici le même réglage et lire la description évite les contresens.
Régler des plannings pour la CI et les conteneurs
Les entrées `schedule` de GitHub Actions et les CronJob de Kubernetes utilisent les mêmes cinq champs. Ils fonctionnent toutefois en UTC la plupart du temps, il faut donc décaler le champ des heures du nombre correspondant au fuseau.
Le vocabulaire de cron
- cron
- Le programme résident des systèmes de type UNIX qui exécute des commandes aux heures indiquées. Sa configuration réside dans une table propre à chaque utilisateur, appelée crontab.
- crontab
- Désigne à la fois la table de planification elle-même et la commande qui sert à l'éditer (`crontab -e`). Chaque ligne associe une expression cron à la commande à lancer.
- Astérisque (*)
- Signifie « toutes les valeurs » du champ concerné. Un astérisque dans le champ des minutes veut dire chaque minute ; dans le champ du mois, tous les mois.
- Pas (*/n)
- Déclenche une exécution toutes les n valeurs. Un `*/15` dans le champ des minutes correspond aux minutes 0, 15, 30 et 45. Le décompte part toujours de la plus petite valeur du champ : cela ne signifie pas « n minutes après la dernière exécution ».
- Listes et plages
- La liste énumère des valeurs séparées par des virgules (`1,15`) ; la plage les relie par un trait d'union (`9-17`). Les deux peuvent se combiner dans un même champ, comme dans `1-5,10`.
- Jour du mois et jour de la semaine ensemble
- Dans la plupart des implémentations de cron, si le champ du jour du mois et celui du jour de la semaine sont tous deux différents de *, la tâche s'exécute dès que **l'un des deux** correspond, et non lorsque les deux correspondent. `0 0 1 * 1` signifie donc « le 1er de chaque mois, et aussi tous les lundis » : une combinaison qui surprend régulièrement.
Questions fréquentes
Anecdote — Pourquoi écrire une expression cron est plus difficile que la lire
Une expression cron paraît simple une fois que l'on connaît ses 5 champs, mais en écrire une à la main implique de se souvenir de détails comme savoir si « */15 » ou « 1-30/5 » est la bonne forme, ou si les jours de la semaine commencent à 0 ou à 1 — des détails étonnamment faciles à mal utiliser. Lire une expression cron existante (la tâche de l'analyseur d'expressions Cron de ce site) est comparativement mécanique, puisqu'il suffit de parcourir les champs un par un.
Cet outil est construit autour de cette asymétrie : il facilite la construction d'une expression cron à partir de sélections dans l'interface, plutôt que la saisie de syntaxe brute. Vous exprimez votre intention directement — « s'exécuter à 9h en semaine » — via des menus déroulants et des champs numériques, et l'outil assemble une expression cron qui la satisfait, supprimant ainsi complètement le besoin de mémoriser la syntaxe.
En dernière vérification, l'outil affiche un aperçu des 5 prochaines exécutions programmées pour l'expression que vous venez de construire. Cela compte particulièrement à cause d'une règle subtile qui prête souvent à confusion : lorsque le jour du mois et le jour de la semaine sont tous deux restreints, cron les traite comme une condition OU plutôt que ET. Voir les dates candidates réelles aide à repérer une tâche qui s'exécuterait sinon plus souvent que prévu.