Cron est le planificateur de tâches standard des systèmes Unix/Linux, et sa syntaxe à 5 champs est reprise dans de nombreux outils modernes (CI/CD, Kubernetes CronJob). Ce guide explique sa syntaxe et les pièges les plus fréquents.
Une expression cron standard est composée de 5 champs séparés par des espaces, dans cet ordre précis :
| Champ | Plage de valeurs |
|---|---|
| Minute | 0 à 59 |
| Heure | 0 à 23 |
| Jour du mois | 1 à 31 |
| Mois | 1 à 12 |
| Jour de la semaine | 0 à 6 (0 = dimanche) |
Par exemple, 0 3 * * * signifie "à 3h00 du matin, tous les jours" — minute 0, heure 3, et un astérisque (toutes les valeurs) pour les trois champs restants.
* : toutes les valeurs possibles pour ce champ.*/n : tous les n (ex: */15 en minute = toutes les 15 minutes).a-b : un intervalle (ex: 1-5 en jour de semaine = du lundi au vendredi).a,b,c : une liste de valeurs spécifiques (ex: 1,15 en jour du mois = le 1er et le 15).| Expression | Signification |
|---|---|
0 3 * * * | Tous les jours à 3h00 |
*/15 * * * * | Toutes les 15 minutes |
0 9 * * 1-5 | À 9h00, du lundi au vendredi |
0 0 1 * * | Le 1er de chaque mois à minuit |
0 22 * * 0 | Tous les dimanches à 22h00 |
Si à la fois le champ "jour du mois" et le champ "jour de la semaine" sont restreints (différents de*), la plupart des implémentations cron exécutent la tâche si l'une OU l'autre condition est remplie — pas les deux en même temps. C'est une source fréquente de confusion :0 0 13 * 5ne signifie pas "le vendredi 13" mais "le 13 du mois, OU tout vendredi".
Pour exprimer une condition réellement combinée (comme "le vendredi 13 uniquement"), il faut généralement déléguer la vérification à un script appelé par la tâche cron, plutôt qu'à l'expression cron elle-même.
La syntaxe cron à 5 champs est reprise telle quelle dans de nombreux outils modernes pour planifier des tâches récurrentes :
schedule avec une clé cron dans le workflow YAML.Une différence importante : ces plateformes exécutent généralement en UTC par défaut, alors qu'un cron système Linux utilise le fuseau horaire configuré sur la machine — toujours vérifier explicitement le fuseau horaire de référence avant de déployer une tâche planifiée sensible aux horaires.
Utiliser l'explicateur / générateur de cron →Le cron Unix standard n'a que 5 champs (granularité minute). Certains outils (comme Quartz Scheduler en Java, ou certaines bibliothèques) ajoutent un champ secondes en tête, mais ce n'est pas la norme cron classique.
0 */2 * * * — exécution à la minute 0 de chaque heure paire (0h, 2h, 4h...).
Les causes les plus fréquentes hors syntaxe : le service cron n'est pas démarré, le chemin des commandes dans le script n'est pas absolu (l'environnement cron a un PATH minimal), ou des permissions insuffisantes sur le script exécuté.
Un crontab utilisateur (édité via crontab -e) ne contient que les 5 champs habituels. Le crontab système (/etc/crontab) ajoute un 6ème champ obligatoire pour préciser l'utilisateur sous lequel la commande doit s'exécuter.
Outils similaires