-- les champs sont interprétés en UTC, comme le font cron, GitHub Actions et Vercel --
- minute
- à 0
- heure
- à 9
- jour du mois
- toutes les valeurs
- mois
- toutes les valeurs
- jour de la semaine
- à 1, 2, 3, 4, 5
Utilisation
Saisissez une expression à cinq champs. L'outil valide chaque champ, indique lequel pose problème le cas échéant, et calcule les cinq prochaines exécutions.
Les cinq champs
┌───────────── minute (0-59)
│ ┌─────────── heure (0-23)
│ │ ┌───────── jour du mois (1-31)
│ │ │ ┌─────── mois (1-12 ou JAN-DEC)
│ │ │ │ ┌───── jour de la semaine (0-6 ou SUN-SAT, 0 = dimanche)
│ │ │ │ │
* * * * *
| Syntaxe | Sens |
|---|---|
* | toutes les valeurs |
5 | uniquement 5 |
1-5 | de 1 à 5 inclus |
*/15 | toutes les 15 unités, à partir du min |
5/10 | à partir de 5, puis tous les 10 |
1,15,30 | ces valeurs précisément |
7 est accepté comme alias de dimanche, en plus de 0 : crontab(5) le
documente explicitement.
Le piège du jour du mois et du jour de la semaine
C'est la source de bug des expressions cron. Quand les deux champs de jour
sont restreints — ni l'un ni l'autre à * — cron déclenche dès que l'un des
deux correspond, pas quand les deux correspondent.
0 0 1 * 1
On lit volontiers « le premier lundi du mois ». En réalité : tous les lundis, et en plus le 1er de chaque mois. Pour obtenir un premier lundi, il faut tester la date dans le script lui-même :
# le 1er lundi du mois : cron déclenche tous les lundis, le script filtre
0 0 * * 1 [ "$(date +%d)" -le 07 ] && /usr/local/bin/mon-scriptDès qu'un seul des deux champs est restreint, la règle redevient intuitive :
0 9 * * 1-5 signifie bien « à 9 h, du lundi au vendredi ».
Fuseau horaire
Cet outil interprète les champs en UTC, comme cron système, GitHub Actions et Vercel. Un ordonnanceur qui interprète en heure locale pose deux questions sans bonne réponse : au passage à l'heure d'été, une tâche à 02:30 n'existe pas ; au passage à l'heure d'hiver, elle existe deux fois.
D'où une règle simple : planifiez en UTC et convertissez à l'affichage. Une
tâche à 9 h heure de Paris se planifie à 0 8 * * * l'hiver et 0 7 * * * l'été
— ou, mieux, se planifie à une heure où le décalage n'a pas d'importance.
Expressions valides qui ne se déclenchent jamais
0 0 30 2 *
Le 30 février est syntaxiquement correct et n'arrivera jamais. L'outil le détecte et le dit, au lieu de chercher indéfiniment.
0 0 29 2 * est plus subtile : elle se déclenche, mais seulement les années
bissextiles — donc une fois tous les quatre ans.
Vérifier un cron dans un projet
// GitHub Actions : les minutes exactes sont déconseillées, le planificateur
// est surchargé à :00 et peut décaler de plusieurs minutes
on:
schedule:
- cron: "17 3 * * *" // plutôt que "0 3 * * *"Un cron GitHub Actions n'est pas garanti à la minute : c'est une file d'attente partagée. Pour une tâche qui doit vraiment partir à l'heure, il faut un ordonnanceur dédié.
sujets abordés
à lire aussi
- Conversion de casseutilsConvertissez un texte en camelCase, snake_case, kebab-case et sept autres formats, ligne par ligne1 tag(s) en commun : texte
- Dates et horodatagesutilsConvertissez un horodatage Unix en date lisible, dans les deux sens et dans sept fuseaux horaires1 tag(s) en commun : texte
- Comparateur de textesutilsComparez deux textes ligne à ligne et repérez d'un coup d'œil les ajouts et les suppressions1 tag(s) en commun : texte