Comprendre la syntaxe cron

Cron planifie des tâches récurrentes sur les systèmes Unix depuis des décennies. Sa syntaxe tient sur une ligne de cinq champs, mais cette concision la rend facile à mal lire. Voici comment la décoder sans hésiter.

Les cinq champs

Dans l'ordre : minute (0-59), heure (0-23), jour du mois (1-31), mois (1-12), jour de la semaine (0-6, dimanche = 0). Un astérisque * signifie « chaque valeur ». Ainsi 0 9 * * 1 se lit : minute 0, heure 9, tous les jours du mois, tous les mois, le lundi - donc « chaque lundi à 9h00 ».

💡 Anecdote - Petite bizarrerie héritée : dans la plupart des crons, le dimanche s'écrit indifféremment 0 ou 7.

Les raccourcis qui comptent

  • */15 dans le champ minute : toutes les 15 minutes
  • 0 0 * * * : tous les jours à minuit
  • 0 8-18 * * 1-5 : toutes les heures pleines de 8h à 18h, du lundi au vendredi
  • 0 3 1 * * : le 1er de chaque mois à 3h du matin

Les pièges classiques

Le fuseau horaire est celui du serveur, pas le vôtre : une tâche « à minuit » peut tomber en pleine journée ailleurs. Et quand jour-du-mois et jour-de-semaine sont tous deux précisés, cron déclenche si l'un OU l'autre correspond, pas les deux - une source d'erreurs fréquente. Dans le doute, écrivez votre ligne puis relisez-la en clair avec notre parseur cron, qui traduit chaque champ en phrase compréhensible

🤓 Le saviez-vous ? Le nom « cron » vient du grec chronos, le temps. La version la plus répandue aujourd'hui, « Vixie cron », a été écrite par Paul Vixie en 1987.