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.
Aussi recherché comme : crontab, générateur cron, explication cron, syntaxe cron, crontab guru, planification cron, tâche cron, analyseur cron.
Outils complémentaires : Générateur d'expression cron
- Générateur de service systemd — Faites tourner votre application comme un véritable service Linux qui démarre au boot et redémarre après un plantage.
- Calculateur de différence de dates — Comptez les jours entre deux dates, y compris les jours ouvrés et le détail en années, mois et jours.
- Testeur d’expressions régulières — Saisissez un modèle et observez les correspondances s'afficher en temps réel dans votre texte de test.
- Formateur HTML — Collez du balisage minifié ou désordonné et obtenez un HTML propre, indenté de manière cohérente, y compris les blocs <style> et <script> intégrés.
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.