raatools/

Générateur d'expressions Cron

Créez et décodez des expressions cron à cinq champs visuellement.

Format: minute hour day-of-month month day-of-week

Use * for any value, 0-5 for ranges, 1,3,5 for lists, */5 for every N

Cron Expression
* * * * *
Description

every minute

Qu'est-ce que cron ?

Cron est le planificateur de tâches standard que l'on trouve dans les systèmes d'exploitation Unix et Linux. Il exécute des commandes ou des scripts à des heures et intervalles spécifiés, ce qui le rend essentiel pour l'administration système, l'automatisation DevOps et la planification des applications back-end. Le nom vient du mot grec chronos, signifiant temps.

Une expression cron est une chaîne compacte de cinq champs qui définit quand une tâche doit s'exécuter. Chaque champ spécifie un composant de temps — minute, heure, jour du mois, mois et jour de la semaine. Ensemble, ces cinq champs permettent d'exprimer des planifications allant de chaque minute à une fois par an à une date précise.

Syntaxe cron expliquée

Chacun des cinq champs accepte des valeurs spécifiques et des caractères spéciaux. Un astérisque (*) signifie toutes les valeurs possibles. Un nombre fixe une valeur précise. Un trait d'union (1-5) définit une plage. Une virgule (1,3,5) crée une liste. Un slash (*/5) définit un pas. La combinaison de ces opérateurs permet de construire pratiquement n'importe quelle planification.

Référence des champs

  • Minute (0–59) : la minute de l'heure à laquelle la tâche s'exécute.
  • Heure (0–23) : l'heure de la journée au format 24 heures. 0 correspond à minuit, 12 à midi.
  • Jour du mois (1–31) : le jour du calendrier. Tous les mois n'ont pas 31 jours — cron ignore automatiquement les dates invalides.
  • Mois (1–12) : le mois du calendrier. 1 correspond à janvier, 12 à décembre.
  • Jour de la semaine (0–6) : le jour de la semaine. 0 correspond à dimanche, 6 à samedi. Certains systèmes acceptent aussi 7 pour dimanche.

Exemples courants

  • 0 0 * * * — 0 0 * * * — Tous les jours à minuit.
  • 0 9 * * 1-5 — 0 9 * * 1-5 — En semaine à 9h00.
  • 0 0 1 * * — 0 0 1 * * — Le premier jour de chaque mois à minuit.
  • */15 * * * * — */15 * * * * — Toutes les 15 minutes.
  • 0 */4 * * * — 0 */4 * * * — toutes les 4 heures, à l'heure pile.

Erreurs courantes

Confondre l'ordre des champs : c'est minute, heure, jour, mois, jour de la semaine — pas l'inverse. Oublier que cron utilise généralement le fuseau horaire du serveur : une tâche planifiée à 9h00 peut s'exécuter à un autre moment selon l'emplacement de votre serveur. Une autre erreur fréquente est d'écrire 0 0 31 2 * — le 31 février n'existe pas, donc la tâche ne s'exécute jamais.

Le champ jour du mois et jour de la semaine fonctionnent en OR (ou) — si les deux sont spécifiés, la tâche s'exécute lorsque l'un ou l'autre correspond, pas les deux à la fois. C'est souvent contre-intuitif. Pour les heures de pointe, attention aux serveurs surchargés exécutant trop de cron jobs au même moment — décalez vos planifications.

Conseils pratiques

Loguez toujours la sortie de vos scripts cron dans un fichier — sans cela, vous ne saurez pas pourquoi une tâche a échoué. Utilisez des chemins absolus pour les commandes et les fichiers, car l'environnement cron est minimal. Testez vos expressions avec cet outil avant de les déployer, et utilisez crontab -e pour les modifier proprement.

Pour des planifications complexes, préférez des outils modernes comme systemd timers, cron.d ou un orchestrateur comme Airflow ou Kubernetes CronJobs. Ces alternatives offrent une meilleure visibilité, des dépendances entre tâches et des mécanismes de reprise après échec.

Questions fréquentes

Quelle est la différence entre cron et crontab ?

Cron est le démon (service) qui exécute les tâches planifiées. Crontab est le fichier (ou la commande) où vous définissez ces tâches. Chaque utilisateur peut avoir sa propre crontab, modifiable avec crontab -e.

Cron fonctionne-t-il sous Windows ?

Windows utilise le Planificateur de tâches (Task Scheduler) au lieu de cron, mais avec un fonctionnement similaire. Sous WSL (Windows Subsystem for Linux), vous pouvez utiliser cron natif. Sous PowerShell, Register-ScheduledTask offre une planification programmatique.