Les bases des expressions cron : comprendre les 5 champs
Une explication en langage clair de la syntaxe cron standard que vous pouvez appliquer immédiatement
Essayer l'explicateur cronPourquoi les expressions cron piègent même les développeurs expérimentés
La plupart des erreurs cron commencent avant le déploiement, lorsque l'intention de planification et la syntaxe divergent. Vous voulez qu'une tâche s'exécute tous les jours ouvrables à 8 h, mais une valeur mal placée la décale à chaque heure ou chaque jour du mois. La cause profonde est presque toujours la même : les cinq champs d'une expression cron sont compacts, positionnels et impitoyables.
Une expression cron standard est une seule ligne de cinq champs séparés par des espaces. Chaque champ correspond à une unité de temps, et ensemble ils définissent une planification récurrente. Il n'y a pas d'étiquettes, pas de mots-clés par défaut et aucune marge d'ambiguïté une fois que le planificateur lit la ligne.
Cet article explique la structure du format cron à 5 champs en langage clair. Vous apprendrez ce que chaque champ contrôle, comment les tokens courants fonctionnent et où les erreurs d'interprétation typiques surviennent. Chaque exemple peut être vérifié instantanément dans l'explicateur cron Cronwise, qui vous donne une explication en langage clair et un aperçu des prochaines exécutions tenant compte du fuseau horaire pour toute expression saisie.
Que vous écriviez votre première entrée crontab ou que vous examiniez une planification rédigée par quelqu'un d'autre, comprendre ces cinq champs est la base de tout flux de travail cron qui suit.
Les cinq champs : ce que chacun contrôle
Chaque expression cron standard suit le même format positionnel. De gauche à droite, les cinq champs sont :
| Position | Champ | Valeurs autorisées | Description |
|---|---|---|---|
| 1 | Minute | 0 – 59 | La minute de l'heure à laquelle la tâche s'exécute |
| 2 | Heure | 0 – 23 | L'heure de la journée (format 24 heures) |
| 3 | Jour du mois | 1 – 31 | Le jour du calendrier |
| 4 | Mois | 1 – 12 | Le mois de l'année |
| 5 | Jour de la semaine | 0 – 7 | Le jour de la semaine (0 et 7 représentent tous deux dimanche) |
Un exemple concret rend la correspondance claire. L'expression 30 8 * * 1-5 signifie : à la minute 30, de l'heure 8, chaque jour du mois, chaque mois, mais uniquement du lundi au vendredi. En langage clair : 8 h 30, du lundi au vendredi.
L'astérisque (*) est un joker qui correspond à chaque valeur autorisée pour ce champ. Lorsque vous le voyez, lisez-le comme « tous ». Ainsi * * * * * signifie chaque minute de chaque heure de chaque jour — la planification la plus fréquente possible en cron standard.
Tokens courants et leur fonctionnement
Au-delà du joker astérisque, les champs cron prennent en charge plusieurs tokens qui vous permettent d'exprimer des plages, des intervalles et des listes sans écrire d'entrées séparées.
Virgule (liste)
Une virgule sépare les valeurs individuelles. 0 9,12,18 * * * se déclenche à 9 h 00, 12 h 00 et 18 h 00 chaque jour. Chaque valeur de la liste est traitée indépendamment.
Tiret (plage)
Un tiret définit une plage continue. 0 9-17 * * * se déclenche au début de chaque heure de 9 h 00 à 17 h 00. Les plages sont inclusives aux deux extrémités.
Barre oblique (pas)
Une barre oblique définit un intervalle. */15 * * * * se déclenche toutes les 15 minutes, en commençant à la minute 0. Vous pouvez combiner une plage avec un pas : 0-30/10 * * * * se déclenche aux minutes 0, 10, 20 et 30 de chaque heure.
Combinaison de tokens
Les tokens peuvent être mélangés au sein d'un même champ. 0 8-12,18 * * 1-5 s'exécute au début des heures 8 à 12 et également à l'heure 18, mais uniquement les jours ouvrables. Chaque champ est évalué indépendamment, et le planificateur se déclenche lorsque les cinq champs correspondent simultanément.
Pour un guide approfondi des stratégies de lecture, consultez Comment lire rapidement les expressions cron, qui couvre les modèles mentaux pour analyser les expressions d'un coup d'œil.
Comment interpréter des planifications réelles
Lire correctement une expression cron signifie traduire chaque champ dans l'ordre, puis les combiner en une seule phrase. Voici des exemples pratiques avec leurs équivalents en langage clair :
| Expression | Signification | Cas d'utilisation | Notes de risque |
|---|---|---|---|
0 0 * * * | Minuit chaque jour | Tâches batch quotidiennes, rotation des logs | Charge importante si de nombreuses tâches partagent ce créneau |
*/5 * * * * | Toutes les 5 minutes | Vérifications de santé, interrogation de file d'attente | Haute fréquence ; confirmez que la tâche est idempotente |
0 9 1 * * | 9 h 00 le 1er de chaque mois | Rapports mensuels | Les mois avec moins de 31 jours fonctionnent normalement |
30 2 * * 0 | 2 h 30 chaque dimanche | Fenêtre de maintenance hebdomadaire | Peut chevaucher les transitions d'heure d'été au printemps |
0 */2 * * 1-5 | Toutes les 2 heures les jours ouvrables | Interrogation pendant les heures ouvrables | S'exécute à 0, 2, 4 … 22 — pas seulement pendant les heures de travail |
Le dernier exemple est une erreur d'interprétation courante. */2 dans le champ heure signifie toutes les deux heures à partir de 0, pas toutes les deux heures pendant les heures ouvrables. Si vous ne voulez que de 9 h à 17 h, il vous faut 0 9-17/2 * * 1-5 à la place. C'est exactement le type d'erreur subtile que l'explicateur Cronwise détecte en vous montrant les 10 prochaines exécutions planifiées dans votre fuseau horaire.
Cas limites et limites des champs
Le format à 5 champs a des limites faciles à oublier. Les comprendre prévient les échecs silencieux.
Interaction entre jour du mois et jour de la semaine
En cron standard, lorsque le jour du mois (champ 3) et le jour de la semaine (champ 5) sont tous deux définis sur des valeurs non-joker, la plupart des implémentations les traitent comme une union : la tâche s'exécute si l'une ou l'autre condition est vraie. Cela signifie que 0 9 15 * 1 ne signifie pas « le 15 s'il tombe un lundi ». Cela signifie « chaque 15 du mois et chaque lundi ». C'est l'une des surprises les plus fréquemment signalées dans le cron.
Limites des mois et jours de la semaine
Définir le jour du mois à 31 signifie que la tâche ne s'exécutera que dans les mois qui ont 31 jours (janvier, mars, mai, juillet, août, octobre, décembre). Les mois plus courts seront silencieusement ignorés. De même, les valeurs 0 et 7 du jour de la semaine représentent toutes deux dimanche, mais les mélanger dans la même expression peut causer de la confusion lors des revues de code.
Dépendance au fuseau horaire
Une expression cron ne contient aucune information de fuseau horaire par elle-même. Le planificateur interprète les heures dans le fuseau horaire qu'il est configuré pour utiliser, qui peut être UTC, l'heure locale du serveur ou un paramètre explicite. Si votre équipe s'étend sur plusieurs fuseaux horaires, confirmez toujours le paramètre de fuseau horaire du planificateur avant de déployer. Cronwise vous permet de sélectionner n'importe quel fuseau horaire IANA et de prévisualiser les exécutions en conséquence.
Appliquez vos connaissances dans le flux de travail Cronwise
Une fois que vous comprenez les cinq champs, l'étape suivante est de passer de la lecture des expressions cron à leur construction en toute confiance. Cronwise propose deux chemins complémentaires pour cela.
Expliquer d'abord, puis générer
Commencez avec l'explicateur cron pour vérifier une expression existante. Collez-la, lisez le résumé en langage clair et parcourez le tableau des prochaines exécutions. Si la planification ne correspond pas à ce que vous aviez prévu, passez au générateur cron pour construire visuellement la bonne expression, champ par champ. Le générateur élimine les approximations syntaxiques en vous permettant de sélectionner des valeurs dans des menus déroulants et des onglets.
Liste de vérification avant le déploiement
| Vérification | Pourquoi c'est important | Critère de réussite |
|---|---|---|
| Le résumé en langage clair correspond à l'intention | Détecte les erreurs d'ordre des champs | La phrase de résumé correspond à votre objectif de planification |
| Les horodatages des prochaines exécutions sont corrects | Détecte les mauvais usages de tokens (plages, pas) | Les 5 premières exécutions correspondent aux dates et heures attendues |
| Le fuseau horaire correspond à l'environnement cible | Prévient les exécutions décalées de plusieurs heures | Le fuseau horaire sélectionné est égal au fuseau horaire configuré du planificateur |
| Aucun avertissement de validation | Détecte les motifs risqués en amont | Zéro avertissement ou chaque avertissement intentionnellement accepté |
Pour un guide complet du constructeur visuel, lisez Générateur cron visuel : flux de travail étape par étape, qui couvre la navigation par onglets, les préréglages sauvegardés et les options d'exportation.
Conclusion : déployez en toute confiance
Le format cron à 5 champs est d'une simplicité trompeuse : minute, heure, jour du mois, mois et jour de la semaine. Le maîtriser signifie connaître non seulement les positions des champs mais aussi comment les tokens se combinent, où se cachent les cas limites et pourquoi une vérification de validation de 10 secondes vaut l'effort à chaque fois.
Voici les règles clés à retenir :
- Lisez les champs de gauche à droite : minute, heure, jour, mois, jour de la semaine.
- Un astérisque signifie « tous » — ce n'est pas un espace réservé ni une valeur par défaut.
- Les plages, listes et pas peuvent être combinés, mais chaque champ est évalué indépendamment.
- Le jour du mois et le jour de la semaine forment une union lorsque les deux ne sont pas des jokers — pas une intersection.
- Vérifiez toujours le fuseau horaire du planificateur et prévisualisez les prochaines exécutions avant de déployer.
Cronwise est conçu pour rendre cette vérification rapide. Collez une expression, lisez l'explication, vérifiez les exécutions et déployez en toute confiance. Parcourez tous les articles cron sur Cronwise pour continuer à apprendre, ou accédez directement à l'outil.