Générateur d'expressions cron
Créez une expression cron champ par champ, lisez-la en clair, voyez ses prochaines exécutions par fuseau et convertissez-la pour systemd, Quartz ou AWS.
En clair
Le jour du mois et le jour de la semaine sont tous deux fixés : le cron classique s'exécute quand L'UN OU L'AUTRE correspond (pas les deux).
Constructeur
| Champ | Mode | Valeur |
|---|---|---|
| Seconde0–59 | ||
| Minute0–59 | ||
| Heure0–23 | ||
| Jour du mois1–31, L | ||
| Mois1–12 ou JAN–DEC | ||
| Jour de la semaine0–7 (0 et 7 = dimanche) ou SUN–SAT |
Prochaines exécutions
Autres formats
- Ligne de crontab
- systemd OnCalendar=
- Quartz / Spring
- AWS EventBridge
Comment créer une expression cron
- Saisissez ou collez une expression dans Expression cron, ou choisissez-en une dans Préréglages. Les macros comme
@dailyou@weeklysont aussi acceptées. - Vous pouvez aussi passer par le Constructeur : pour chaque champ, choisissez un Mode (Tous, Tous les N, Valeurs précises, Plage ou Personnalisé) et remplissez la Valeur. L’expression se met à jour au fur et à mesure, et modifier l’expression met à jour le constructeur.
- Cochez Ajouter un champ secondes (6 champs) si votre planificateur gère les secondes.
- Lisez la planification En clair, puis vérifiez les Prochaines exécutions. Choisissez le Fuseau horaire du serveur qui exécute la tâche et Combien d’exécutions afficher.
- Copiez l’expression avec Copier, ou utilisez l’un des Autres formats.
Les erreurs sont expliquées champ par champ, par exemple « Minute : 61 est hors limites (0–59) » : vous savez exactement quoi corriger.
Les cinq champs d’une ligne cron
Une ligne cron standard (Vixie cron) compte cinq champs, suivis de la commande :
| Champ | Valeurs autorisées |
|---|---|
| Minute | 0–59 |
| Heure | 0–23 |
| Jour du mois | 1–31 |
| Mois | 1–12 ou JAN–DEC |
| Jour de la semaine | 0–7 (0 et 7 = dimanche) ou SUN–SAT |
Chaque champ accepte * (toutes les valeurs), une liste 1,15, une plage 9-17, un pas */15 (toutes les 15 unités) ou une plage avec un pas 0-30/10. Ainsi, */15 9-17 * * 1-5 signifie toutes les 15 minutes de 9 h à 17 h 45, du lundi au vendredi.
Une règle surprend souvent : quand le Jour du mois et le Jour de la semaine sont tous deux restreints, le cron classique s’exécute si l’un ou l’autre correspond. 0 0 13 * 5 tourne tous les 13 du mois et tous les vendredis, pas seulement les vendredis 13. L’outil affiche alors un avertissement.
Prochaines exécutions et fuseaux horaires
Cron suit l’horloge de la machine, ou la variable CRON_TZ/TZ de la crontab. La liste des Prochaines exécutions est calculée pour le fuseau choisi, changements d’heure compris : au passage à l’heure d’été, une tâche prévue à 2 h 30 peut être sautée, et à l’automne elle peut s’exécuter une ou deux fois selon l’implémentation. Pour une tâche qui doit tourner exactement une fois, évitez la plage 1 h–3 h ou travaillez en UTC.
Vixie cron, timers systemd, Quartz et AWS
- Les timers systemd utilisent
OnCalendar=avec une autre syntaxe :Mon..Fri *-*-* 09..17:00/15:00. Les conditions sur le jour de la semaine et la date s’y combinent par un ET, pas un OU : certaines expressions cron n’ont donc pas d’équivalent exact. - Quartz et Spring placent un champ secondes en tête et peuvent ajouter un champ année. L’un des deux champs de jour doit valoir
?, et Quartz numérote les jours de 1 à 7 en partant du dimanche, contrairement au 0–6 de cron. L’outil écrit les jours en toutes lettres (MON-FRI) pour éviter ce piège. - AWS EventBridge utilise
cron(minutes heures jour mois jour-semaine année): six champs, sans secondes, un?dans l’un des champs de jour et l’année à la fin.
Le cron standard n’a pas de champ secondes. La forme à 6 champs est reconnue par de nombreuses bibliothèques (node-cron, Spring, Quartz), mais pas par la crontab du système.
Questions fréquentes
Comment lancer une tâche toutes les 5 minutes ?
Utilisez */5 * * * *. La tâche s’exécute aux minutes 0, 5, 10… de chaque heure.
Comment lancer une tâche le dernier jour du mois ?
Beaucoup de planificateurs acceptent L dans le champ jour du mois : 0 18 L * *. Avec le Vixie cron de base, lancez la tâche chaque jour du 28 au 31 et vérifiez dans le script que le lendemain est le 1er.
À quoi sert @reboot ?
La commande s’exécute une fois, au démarrage du démon cron. Il n’y a pas de planning : l’outil ne peut donc pas afficher de dates.
Pourquoi ma tâche ne s'exécute-t-elle pas à l'heure affichée ?
Vérifiez le fuseau horaire du serveur, la crontab utilisée (celle de l’utilisateur ou /etc/crontab, qui comporte un champ utilisateur en plus) et le PATH : cron démarre avec un environnement minimal.
Le dimanche, c'est 0 ou 7 ?
Les deux. Dans le champ jour de la semaine, 0 et 7 désignent le dimanche, 1 le lundi et 6 le samedi.
Outils similaires
- Convertisseur de timestamp Unix Convertissez un timestamp Unix en secondes ou millisecondes en date lisible (heure locale, UTC, ISO 8601), et une date en temps epoch.
- Convertisseur de fuseaux horaires Convertissez une date et une heure d'un fuseau horaire vers plusieurs autres à la fois, heure d'été comprise. Recherchez n'importe quelle ville ou fuseau.
- Calculateur chmod Convertissez les droits Unix entre cases à cocher, notation octale (755) et symbolique (rwxr-xr-x), avec setuid, setgid, sticky bit et commande chmod prête.