Une expression cron est composée de cinq champs séparés par des espaces qui indiquent quand une tâche s'exécute ; dans une ligne de crontab, la commande vient ensuite. Les prochaines exécutions des exemples ont été calculées avec un petit script qui applique les règles de Vixie cron, à partir du samedi 10 octobre 2026 à 12:00. Collez des expressions numériques dans l'explicateur d'expressions cron pour les lire en langage courant.
Les cinq champs
┌───────────── minute 0-59
│ ┌─────────── hour 0-23
│ │ ┌───────── day of month 1-31
│ │ │ ┌─────── month 1-12 or jan-dec
│ │ │ │ ┌───── day of week 0-7 or sun-sat (0 and 7 are both Sunday)
│ │ │ │ │
* * * * * /path/to/command
Dans l'ordre : minute, heure, jour du mois, mois et jour de la semaine (le dimanche vaut 0 ou 7).
Caractères spéciaux
| Caractère | Signification | Exemple | Se lit |
|---|---|---|---|
* |
Toutes les valeurs | * * * * * |
Chaque minute |
, |
Liste | 0 9,17 * * * |
À 09:00 et à 17:00 |
- |
Plage (bornes incluses) | 0 9 * * 1-5 |
09:00 du lundi au vendredi |
/ |
Pas | */15 * * * * |
Toutes les 15 minutes (:00, :15, :30, :45) |
a-b/n |
Pas dans une plage | 0 8-18/2 * * * |
08:00, 10:00 ... 18:00 |
| noms | Noms de mois ou de jour en anglais, sans distinction de casse (le cron Vixie classique n'accepte que des noms isolés, pas de listes ni de plages de noms) | 0 4 * * sun |
04:00 le dimanche |
Les pas se comptent depuis le début de la plage, pas depuis l'horloge : */7 dans le champ des minutes se déclenche à :00, :07 ... :56 puis de nouveau à :00, soit un écart de 4 minutes.
Raccourcis
| Raccourci | Équivaut à | S'exécute |
|---|---|---|
@reboot |
(aucun) | Une fois, au démarrage du démon cron |
@yearly, @annually |
0 0 1 1 * |
À minuit le 1er janvier |
@monthly |
0 0 1 * * |
À minuit le 1er du mois |
@weekly |
0 0 * * 0 |
À minuit entre le samedi et le dimanche |
@daily, @midnight |
0 0 * * * |
Chaque nuit à minuit |
@hourly |
0 * * * * |
À la minute 0 de chaque heure |
Exemples résolus
| Expression | Signification | Prochaines exécutions depuis le sam. 10/10/2026 12:00 |
|---|---|---|
*/15 * * * * |
Toutes les 15 minutes | 12:15, 12:30, 12:45, 13:00 |
0 * * * * |
Chaque heure pile | 13:00, 14:00, 15:00 |
0 */6 * * * |
Toutes les 6 heures | sam. 18:00, dim. 00:00, dim. 06:00 |
0 9 * * 1-5 |
09:00 en semaine | lun. 12 oct., mar. 13 oct., mer. 14 oct. |
*/10 9-17 * * 1-5 |
Toutes les 10 minutes aux heures de bureau | lun. 12 oct. 09:00, 09:10, 09:20 |
0 22 * * 1-5 |
22:00 du lundi au vendredi | lun. 12 oct., mar. 13 oct. |
30 2 * * 0 |
02:30 chaque dimanche | dim. 11 oct., dim. 18 oct., dim. 25 oct. |
0 0 * * 6,0 |
Minuit le week-end | dim. 11 oct., sam. 17 oct., dim. 18 oct. |
0 12 1,15 * * |
Midi les 1er et 15 | jeu. 15 oct., dim. 1er nov., dim. 15 nov. |
0 0 1 * * |
Minuit le 1er de chaque mois | dim. 1er nov., mar. 1er déc., ven. 1er janv. 2027 |
0 0 1 1,7 * |
Deux fois par an | ven. 1er janv. 2027, jeu. 1er juil. 2027 |
0 0 29 2 * |
Le 29 février uniquement | mar. 29 févr. 2028, dim. 29 févr. 2032 |
0 0 13 * 5 |
Le 13 ou n'importe quel vendredi | mar. 13 oct., ven. 16 oct., ven. 23 oct. |
Vixie cron et Quartz
Linux et macOS utilisent Vixie cron ou ses descendants (cronie, le cron de Debian). Le planificateur Quartz de Java, et les outils qui s'appuient dessus, emploient un format voisin mais non interchangeable.
| Fonctionnalité | Vixie / cron standard | Quartz |
|---|---|---|
| Champs | 5 : minute heure jour mois jour-semaine | 6 ou 7 : seconde minute heure jour mois jour-semaine [année] |
| Numéros du jour de la semaine | 0-7, dimanche = 0 ou 7 |
1-7, dimanche = 1 |
| Les deux champs de jour renseignés | S'exécute si l'un ou l'autre correspond | Interdit : l'un des deux doit être ? |
? |
Non pris en charge | « Pas de valeur précise » pour le jour du mois ou de la semaine |
L |
Non pris en charge | Dernier : L pour le jour du mois = dernier jour, 6L = dernier vendredi |
W |
Non pris en charge | Jour ouvré le plus proche : 15W |
# |
Non pris en charge | N-ième jour de la semaine : 6#3 = troisième vendredi |
| Raccourcis | @daily et assimilés |
Non pris en charge |
| Jours ouvrés à 09:00 | 0 9 * * 1-5 |
0 0 9 ? * MON-FRI |
Certaines bibliothèques (comme croniter et de nombreux ordonnanceurs de CI) acceptent aussi L et # dans des expressions à cinq champs, mais les démons cron simples non ; vérifiez avant de vous y fier.
Conseils pour la crontab
- Modifiez avec
crontab -eet listez aveccrontab -l. Les crontabs système, dans/etc/crontabet/etc/cron.d/, comportent un champ utilisateur supplémentaire avant la commande. - Utilisez des chemins complets. Cron s'exécute avec un
PATHminimal et sans shell de connexion. - Échappez le
%. Dans une ligne de crontab, un%non échappé termine la commande et ouvre son entrée standard : écrivezdate +\%F. - Conservez la sortie. Ajoutez
>> /var/log/job.log 2>&1ou définissezMAILTO=pour la recevoir par courriel. - Attention au fuseau horaire. Convertissez une planification pour une autre région avec le calculateur de fuseaux horaires.