Comment utiliser : Générateur d'expression cron
- Choisissez une planification courante, ou utilisez Créer une planification pour définir la fréquence, les jours de la semaine et l'heure, puis cliquez sur Utiliser cette planification.
- Ou collez une expression existante, par exemple
30 2 * * 1, dans la zone Expression cron : la description en langage courant se met à jour pendant la saisie. - Ajustez finement chaque partie dans Modifier les champs (minute, heure, jour du mois, mois, jour de la semaine).
- Vérifiez la liste Prochaines exécutions en heure locale ou UTC, puis copiez l'expression dans votre crontab, votre workflow CI ou votre planificateur.
Qu'est-ce qu'une expression cron ?
Une expression cron est une planification compacte composée de cinq champs séparés par des espaces, qui indique au démon Unix cron — ainsi qu'aux outils utilisant la même syntaxe, comme GitHub Actions, GitLab CI, les CronJobs Kubernetes, Vercel ou de nombreuses files de tâches — quand exécuter une tâche. Ce générateur vous permet de construire une expression à partir de listes déroulantes, d'expliquer n'importe quelle expression en français grâce à la bibliothèque open source cRonstrue, et de calculer les prochaines exécutions afin de vérifier une planification avant sa mise en production.
Les cinq champs
┌──────── minute (0–59)
│ ┌────── heure (0–23)
│ │ ┌──── jour du mois (1–31)
│ │ │ ┌── mois (1–12, JAN–DEC)
│ │ │ │ ┌ jour de la semaine (0–6, SUN–SAT)
│ │ │ │ │
* * * * * commande
Dans le champ du jour de la semaine, 7 désigne également le dimanche.
Chaque champ accepte * (toutes les valeurs), une valeur unique, une plage 1-5, une liste 1,15,30, un pas */10 ou une plage avec pas 9-17/2. Certains planificateurs (Quartz, Spring, AWS EventBridge) ajoutent un champ secondes en début d'expression ; cochez « Champ secondes » pour travailler avec des expressions à 6 parties.
Exemples
| Expression | Signification |
|---|---|
*/5 * * * * | Toutes les 5 minutes |
0 * * * * | Au début de chaque heure |
30 2 * * * | Tous les jours à 02 h 30 |
0 9 * * 1-5 | À 9 h les jours de semaine |
0 0 1 * * | À minuit le 1er de chaque mois |
0 0 1 */3 * | À minuit le premier jour de chaque trimestre |
15 14 1 * * | À 14 h 15 le 1er de chaque mois |
Erreurs courantes
- Jour du mois et jour de la semaine. Si ces deux champs sont restreints, le cron classique exécute la tâche lorsque l'un ou l'autre correspond.
0 0 13 * 5signifie « le 13 et tous les vendredis », et non « le vendredi 13 ». La liste des prochaines exécutions applique cette règle. - Oublier la minute.
* 9 * * *s'exécute 60 fois entre 9 h 00 et 9 h 59. Utilisez0 9 * * *pour une exécution unique. - Fuseaux horaires. Cron utilise le fuseau horaire du serveur, tandis que GitHub Actions et la plupart des planificateurs cloud utilisent l'UTC. Passez la liste en UTC pour comparer.
- Pas irréguliers.
*/45dans le champ des minutes se déclenche à :00 et :45, puis à nouveau à :00 — les pas recommencent à chaque heure et ne se cumulent pas. - Numéros de jours sous Quartz. Quartz compte le dimanche comme 1, alors que cron Unix utilise 0 (ou 7). Cet outil utilise la numérotation Unix.
Extensions non standard
L dans le champ du jour du mois (dernier jour du mois), 5L (dernier vendredi) et 1#2 (deuxième lundi) sont pris en charge par Quartz et certaines implémentations de cron, mais pas par Vixie cron sous Linux. Ils sont expliqués et prévisualisés ici, mais vérifiez que votre planificateur les accepte. Besoin de convertir une heure d'exécution en valeur epoch ? Essayez le convertisseur de timestamp Unix ou le convertisseur de fuseaux horaires.
Planifications cron courantes
Expressions cron prêtes à l'emploi pour les planifications les plus recherchées :
- Toutes les minutes
- Toutes les 2 minutes
- Toutes les 5 minutes
- Toutes les 10 minutes
- Toutes les 15 minutes
- Toutes les 20 minutes
- Toutes les 30 minutes
- Toutes les heures
- Toutes les 2 heures
- Toutes les 3 heures
- Toutes les 4 heures
- Toutes les 6 heures
- Toutes les 12 heures
- Tous les jours à minuit
- Tous les jours à 1h
- Tous les jours à 2 h
- Tous les jours à 6 h
- Tous les jours à 9 h
- Tous les jours à midi
- Tous les jours à 18 h
- Deux fois par jour
- Tous les jours ouvrés à 9 h
- Chaque week-end
- Tous les lundis
- Tous les vendredis à 17 h
- Tous les dimanches
- Chaque semaine
- Toutes les heures en journée de travail
- Toutes les 15 minutes en heures de bureau
- Tous les mois
- Le 15 de chaque mois
- Le 1er et le 15
- Tous les trimestres
- Tous les 6 mois
- Chaque année
- Toutes les 30 secondes
- Le dernier jour du mois
- Le premier lundi du mois
Questions fréquentes
Que signifie */15 dans cron ?
*/15 dans le champ des minutes signifie toutes les 15 minutes à partir de 0, soit :00, :15, :30 et :45. 5-50/15 donnerait :05, :20, :35 et :50.Comment exécuter une tâche cron toutes les 30 secondes ?
*/30 * * * * *), ou ajoutez deux lignes dans la crontab, la seconde commençant par sleep 30;.L'heure cron est-elle en UTC ou en heure locale ?
CRON_TZ). GitHub Actions, Kubernetes (par défaut) et la plupart des planificateurs cloud évaluent les expressions en UTC. La liste affichée ici peut présenter l'un ou l'autre.Quelle est la différence entre @daily et 0 0 * * * ?
@daily (ou @midnight) est un raccourci pour 0 0 * * *. De même, @hourly équivaut à 0 * * * *, @weekly à 0 0 * * 0, @monthly à 0 0 1 * * et @yearly à 0 0 1 1 *.Comment planifier une tâche le dernier jour du mois ?
L si votre planificateur le prend en charge (0 0 L * *), soit vous exécutez quotidiennement les jours 28 à 31 et testez la date dans la commande : 0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && ./job.sh.Pourquoi mon expression ne s'exécute-t-elle jamais ?
0 0 31 2 * (31 février) ou 0 0 31 4 * (31 avril), ne correspondent jamais. La liste des prochaines exécutions affiche un avertissement si aucune exécution n'est trouvée dans les dix prochaines années.