Écrire et comprendre une expression cron
Une ligne de crontab commence par cinq champs qui disent quand lancer une commande. 30 3 * * 1-5 se lit « À 03 h 30, du lundi au vendredi ». Cet outil fait le chemin dans les deux sens : collez une expression dans « Expression cron » pour la voir traduite dans « En clair », ou construisez-la avec le « Générateur ». Les « Prochaines exécutions » donnent les 10 dates suivantes dans le fuseau choisi.
Mode d'emploi
- Tapez ou collez l'expression. Les erreurs sont signalées par champ : « Minute : 60 est hors de la plage autorisée (0 à 59) ».
- Ou choisissez un onglet du générateur (« Minutes », « Heures », « Chaque jour », « Semaine », « Jour du mois », « Mois ») : l'expression se met à jour aussitôt.
- Vérifiez les dates, puis « Copier l'expression » ou « Copier le lien ».
Les cinq champs
| Position | Champ | Valeurs |
|---|---|---|
| 1 | Minute | 0 à 59 |
| 2 | Heure | 0 à 23 |
| 3 | Jour du mois | 1 à 31 |
| 4 | Mois | 1 à 12 ou JAN à DEC |
| 5 | Jour de la semaine | 0 à 7 (0 et 7 = dimanche) ou SUN à SAT |
Caractères spéciaux : * veut dire toutes les valeurs, la virgule fait une liste (1,15), le tiret une plage (9-17) et la barre oblique un pas (*/15 donne 0, 15, 30 et 45 ; 5-20/5 donne 5, 10, 15 et 20).
Exemples courants
*/15 * * * *: toutes les 15 minutes.0 0 1 * *: à 00 h 00, le 1er du mois, pratique pour une facture mensuelle.0 2 * * 0et0 2 * * 7: la même chose, chaque dimanche à 02 h 00.
La règle du OU entre jour du mois et jour de la semaine
Quand les deux champs sont restreints, le cron classique lance la tâche si l'un OU l'autre correspond. 0 12 13 * 5 ne vise donc pas seulement les vendredis 13 : la tâche part le 13 de chaque mois ET chaque vendredi. À partir du 14 novembre 2026, cela donne les vendredis 20 et 27 novembre, puis le 4, le 11 et le dimanche 13 décembre. Un champ qui commence par * (comme */2) compte comme non restreint : la règle redevient un ET.
Fuseaux horaires et changement d'heure
Cron suit l'heure locale de la machine. Un serveur réglé en UTC lance 0 8 * * * à 09 h 00 l'hiver à Paris et à 10 h 00 l'été. Le 29 mars 2026, 02 h 30 n'existe pas en France : une tâche à heure fixe comme 30 2 * * * part juste après le saut, à 03 h 00, et l'outil le signale dans la liste. Le 25 octobre 2026, 02 h 30 se répète : elle ne part qu'une fois, alors qu'une tâche avec * dans la minute ou l'heure tourne deux fois.
Variantes selon les planificateurs
Certains outils ajoutent un champ des secondes en tête (6 champs) ou une année à la fin (7 champs) : cochez « Secondes en premier champ ». D'autres acceptent @daily (0 0 * * *) ou @reboot (au démarrage). Les caractères L (dernier), W (jour de semaine le plus proche), # (n-ième jour, MON#2 pour le 2e lundi) et ? ne sont pas standard : cochez « Interpréter L, W, # et ? » pour les lire. Certains numérotent aussi les jours de 1 (dimanche) à 7, ou appliquent un ET au lieu du OU.
Bonnes pratiques
- Évitez minuit pile : tout le monde y planifie ses tâches. Préférez
17 3 * * *à0 0 * * *. - Journalisez : ajoutez
>> /var/log/sauvegarde.log 2>&1à la commande pour garder une trace des erreurs.
Questions fréquentes
Comment lancer une tâche toutes les 5 minutes ?
*/5 * * * * tourne à 00, 05, 10… 55 de chaque heure, soit 288 fois par jour.
Pourquoi ma tâche ne tourne-t-elle pas le 31 ?
Avec 0 0 31 * *, les mois de 30 jours et février sont simplement sautés : il n'y a que 7 exécutions par an. Pour le dernier jour du mois, il faut un planificateur qui accepte L.
Mon expression à 6 champs est refusée, pourquoi ?
Le cron classique n'en lit que 5. Si votre planificateur met les secondes en tête, cochez « Secondes en premier champ ».
Mon expression est-elle envoyée quelque part ?
Non, tout se calcule dans votre navigateur. Le lien partageable ne contient que l'expression, le fuseau et les options.