§ Article
Comment lire une expression Cron ?
Cet article fait suite à l’ajout d’un outil de conversion d’expressions Cron dans l’outil de conversion Konverton que j’ai créé. Il appuye les propos en expliquant avec plus de détails comment fonctionne une expression Cron, il est encore incomplet et sera enrichit à l’avenir, il ne s’agit pass d’un manuel mais d’un petit guide.
Pour une documentation complète de Cron, reportez-vous à la crontab(5) - Page de manuel Linux (en anglais). Ce document est accessible hors ligne en entrant la commande man 5 crontab dans un terminal, sous Linux ou macOS.
Une expression Cron classique comporte 5 champs, dans cet ordre, séparés par des espaces :
| Champ | Valeurs acceptées |
| Minute | 0 à 59 |
| Heure | 0 à 23 |
| Jour du mois | 1 à 31 |
| Mois | 1 à 12 (ou jan, feb, …) |
| Jour de la semaine | 0 à 6, 0 = dimanche (ou sun, mon, …) |
Exemple structuré
# ┌───────────── minute (0 - 59)
# │ ┌───────────── heure (0 - 23)
# │ │ ┌───────────── jour du mois (1 - 31)
# │ │ │ ┌───────────── mois (1 - 12)
# │ │ │ │ ┌───────────── jour de la semaine (0 - 6) (de dimanche à samedi)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <commande à exécuter>
Certains systèmes (Quartz, Spring, quelques planificateurs cloud) acceptent un 6ᵉ champ optionnel placé en tête pour les secondes (0 à 59). L’outil de Konverton détecte automatiquement les expressions à 5 ou 6 champs.
Les symboles
| Symbole | Signification | Exemple |
| * | Toutes les valeurs possibles | * * * * * → chaque minute |
| , | Liste de valeurs | 0,30 * * * * → aux minutes 0 et 30 |
| - | Plage de valeurs | 9-17 * * * * → de 9h à 17h |
| / | Pas régulier | */15 * * * * → toutes les 15 minutes |
| ? | Équivalent de " * " (spécifique à certains systèmes comme Quartz) |
Le cas particulier jour du mois / jour de semaine
Si les champs “jour du mois” et “jour de la semaine” sont tous les deux restreints (différents de *), la tâche s’exécute si l’une ou l’autre condition est vraie — pas seulement quand les deux le sont en même temps. C’est une source fréquente de confusion.
Raccourcis spéciaux
Certains ordonnanceurs acceptent des alias à la place des 5 champs :
| Raccourci | Équivalent |
| @yearly / @annually | 0 0 1 1 * |
| @monthly | 0 0 1 * * |
| @weekly | 0 0 * * 0 |
| @daily / @midnight | 0 0 * * * |
| @hourly | 0 * * * * |
| @reboot | Exécution unique au démarrage, hors planification |
Exemples courants
0 0 * * *— tous les jours à minuit*/5 * * * *— toutes les 5 minutes0 9 * * 1-5— à 9h du lundi au vendredi0 0 1 * *— le 1er de chaque mois à minuit0 22 * * 5— tous les vendredis à 22h
Par défaut, l’outil calcule les prochaines exécutions dans le fuseau horaire de votre navigateur ; bascule sur UTC si ton serveur ou ta CI planifie ses tâches dans ce fuseau.