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
* * * * * 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.