Générateur d'expressions cron
Construisez et expliquez des planifications cron en clair, avec les prochaines exécutions. Tout s'exécute localement — rien n'est téléversé.
- Entrée
- Cron expression · schedule picker
- Sortie
- Plain-language schedule · next run times
* toutes · , liste · - plage · / pas · noms JAN–DEC et SUN–SAT · 7 vaut aussi dimanche
10 prochaines exécutions
Les heures sautées par le changement d'heure s'exécutent juste après ; les heures répétées s'exécutent une fois, sauf pour les heures en joker.
Syntaxe crontab standard. Quartz et AWS EventBridge utilisent d'autres champs (secondes, années, ? et 1 = dimanche).
Vous cherchez du texte plutôt que des horaires ? Ouvrir le regex tester
Construire et expliquer des expressions cron
Ce générateur d'expressions cron transforme une planification en syntaxe crontab, et inversement. Tapez ou collez une expression pour la lire sous forme de phrase claire, ou construisez-la champ par champ avec les contrôles, puis vérifiez les dix prochaines exécutions dans n'importe quel fuseau horaire, changements d'heure compris. Il suit les règles du cron présent sur tous les serveurs Linux, y compris celles qui piègent tout le monde, et tout est calculé dans votre navigateur.
Comment écrire une expression cron
- Partez d'un préréglage comme En semaine à 9:00, ou tapez une expression comme
*/15 9-17 * * 1-5. - Lisez la phrase sous le champ pour confirmer que la planification signifie bien ce que vous pensez.
- Ajustez un champ dans le constructeur : choisissez minute, heure, jour du mois, mois ou jour de la semaine, puis chaque, tous les N, valeurs précises ou plage. L'expression se met à jour à chaque clic.
- Choisissez le fuseau horaire de votre serveur ou de votre planificateur et vérifiez les prochaines exécutions, puis copiez l'expression dans votre crontab, votre workflow de CI ou votre planificateur de tâches.
Syntaxe cron : les cinq champs
Une ligne de crontab standard compte cinq champs séparés par des espaces, suivis de la commande : minute hour day-of-month month day-of-week. Certains planificateurs, comme node-cron et Spring, acceptent un sixième champ facultatif pour les secondes, placé en tête ; cet outil lit les deux formes.
- Minute
- 0–59
- Heure
- 0–23, au format 24 h
- Jour du mois
- 1–31
- Mois
- 1–12 ou JAN–DEC
- Jour de la semaine
- 0–6 ou SUN–SAT, où 0 est le dimanche ; 7 est aussi accepté pour le dimanche
- Secondes (facultatif)
- 0–59, en sixième champ devant la minute
Caractères spéciaux et raccourcis
*signifie toutes les valeurs :* * * * *s'exécute chaque minute.,liste des valeurs :0 8,12,18 * * *s'exécute à 08:00, 12:00 et 18:00.-est une plage :0 9 * * 1-5s'exécute à 09:00 du lundi au vendredi./est un pas :*/5 * * * *signifie toutes les cinq minutes, et1-10/2signifie 1, 3, 5, 7 et 9.- Raccourcis :
@hourly,@daily(ou@midnight),@weekly,@monthlyet@yearly(ou@annually).@reboots'exécute une fois au démarrage du démon cron : il n'a donc pas de prochaine exécution.
Le piège du jour du mois et du jour de la semaine
Quand les deux champs de jour sont restreints, cron lance la tâche quand l'un ou l'autre correspond, pas quand les deux correspondent. 0 0 13 * 5 s'exécute donc le 13 de chaque mois et chaque vendredi, pas seulement le vendredi 13. Si l'un des deux champs commence par *, les deux sont combinés par un ET, comme on s'y attend. L'explication et les exécutions affichées ici suivent exactement cette règle.
Les jours qui n'existent pas dans un mois sont simplement ignorés : 0 0 31 * * ne s'exécute que les mois de 31 jours, et 0 0 29 2 * seulement les années bissextiles. Pour s'exécuter le dernier jour de chaque mois en cron standard, planifiez les jours 28 à 31 et testez la date dans la commande.
Exemples de planifications cron
Collez n'importe lequel de ces exemples dans le générateur pour le relire sous forme de phrase et voir exactement quand il se déclenchera. Une planification qui paraît juste dans votre tête mérite d'être confrontée à de vraies dates avant la mise en production, surtout si elle est mensuelle ou annuelle et mettrait des semaines à révéler une erreur.
- */10 * * * *
- Toutes les 10 minutes, à l'heure pile puis à 10, 20, 30, 40 et 50.
- 0 */6 * * *
- Toutes les six heures : à 00:00, 06:00, 12:00 et 18:00.
- 30 2 * * *
- Chaque nuit à 02:30, un créneau courant pour les sauvegardes (mais voyez la remarque sur l'heure d'été plus bas).
- 0 9 * * MON-FRI
- À 09:00 en semaine.
- 0 0 1 * *
- À minuit le premier jour de chaque mois, comme @monthly.
- 0 0 1 1,4,7,10 *
- À minuit au début de chaque trimestre.
- */30 * * * * *
- Toutes les 30 secondes, au format à six champs avec les secondes.
Fuseaux horaires et heure d'été
Cron utilise l'horloge de la machine sur laquelle il tourne, qui est en UTC sur la plupart des serveurs. Choisissez ce fuseau dans la liste des prochaines exécutions pour voir ce que fera réellement votre tâche. Lors des changements d'heure, une heure sautée au passage à l'heure d'été s'exécute juste après le changement (02:30 devient 03:30), et une heure répétée au retour à l'heure d'hiver ne s'exécute qu'une fois ; les tâches dont le champ heure est un joker continuent de tourner pendant les deux occurrences de l'heure répétée, comme le fait Vixie cron.
D'autres planificateurs utilisent d'autres dialectes. Quartz (Java) et AWS EventBridge utilisent six ou sept champs avec secondes et années, exigent ? dans l'un des deux champs de jour et numérotent les jours de la semaine à partir de 1 pour le dimanche ; GitHub Actions et les CronJobs Kubernetes utilisent les cinq champs standard en UTC. Vérifiez le format attendu par votre plateforme avant de coller.
Vous testez un motif plutôt qu'une planification ? Essayez le regex tester.
Questions fréquentes
- Que signifie * * * * * en cron ?
- Cinq astérisques signifient chaque minute de chaque heure de chaque jour. C'est la fréquence la plus élevée qu'autorise le cron standard ; au-delà, il faut un planificateur avec un champ des secondes.
- Comment lancer une tâche cron toutes les 5 minutes ?
- Utilisez */5 * * * *. Le pas */5 dans le champ minute correspond aux minutes 0, 5, 10 et ainsi de suite jusqu'à 55.
- Comment lancer une tâche cron tous les jours à minuit ?
- Utilisez 0 0 * * *, ou le raccourci @daily (aussi écrit @midnight). Rappelez-vous que minuit s'entend dans le fuseau horaire du serveur qui exécute cron, souvent UTC.
- Comment planifier une tâche cron uniquement en semaine ?
- Mettez 1-5 dans le champ jour de la semaine, par exemple 0 9 * * 1-5 pour 09:00 du lundi au vendredi. MON-FRI fonctionne aussi.
- Le dimanche vaut-il 0 ou 7 en cron ?
- Les deux. Le cron standard accepte 0 et 7 pour le dimanche, ainsi que les noms SUN à SAT. Quartz et AWS sont différents : ils numérotent les jours de 1 à 7 en commençant par le dimanche.
- Pourquoi ma tâche cron s'exécute-t-elle plus de jours que prévu ?
- Si vous définissez à la fois le jour du mois et le jour de la semaine, cron s'exécute quand l'un ou l'autre correspond. Mettez l'un des deux champs à * pour n'exiger que l'autre.
- Quel fuseau horaire cron utilise-t-il ?
- Le fuseau horaire système de la machine, sauf si la crontab définit CRON_TZ ou si le planificateur a son propre réglage. Les planificateurs cloud comme GitHub Actions utilisent l'UTC.
- Cron gère-t-il les secondes ?
- La crontab standard non ; sa plus petite unité est la minute. Des bibliothèques comme node-cron, Spring et Quartz acceptent un champ supplémentaire pour les secondes en tête, que cet outil comprend aussi.