Générateur d'Expression Cron
Construisez un planning crontab à partir de menus déroulants — minute, heure, jour, mois, jour de la semaine — avec une description en clair et des préréglages courants.
999 vues
Comment ça fonctionne
Une expression cron planifie une tâche récurrente à l'aide de cinq champs séparés par des espaces, toujours dans le même ordre : minute · heure · jour du mois · mois · jour de la semaine. Chaque champ accepte une valeur ou l'un de quatre caractères spéciaux : * signifie « toutes les valeurs possibles » ; */15 signifie « toutes les 15 unités, à partir du minimum du champ » ; 1,15,30 est une liste explicite ; 1-5 est une plage inclusive. Lu de gauche à droite, 0 9 * * 1-5 signifie « à la minute 0 de l'heure 9, tous les jours du mois, tous les mois, les jours de semaine 1 à 5 » — c'est-à-dire 9h00 du lundi au vendredi. */10 * * * * se déclenche toutes les 10 minutes en continu, et 0 0 1 * * se déclenche à minuit le 1er de chaque mois.
Construisez un planning à partir des menus déroulants et cet outil assemble les cinq champs, puis traduit le résultat en une phrase en langage clair afin qu'il puisse être vérifié avant d'être collé dans un fichier crontab ou un planificateur cloud. Des préréglages courants — toutes les minutes, toutes les heures, quotidien à une heure donnée, jours de semaine uniquement — sont accessibles en un clic pour les plannings les plus fréquemment utilisés.
Ce qu'il faut savoir
La plus grande surprise de la sémantique cron : quand le jour du mois et le jour de la semaine sont tous les deux restreints (aucun n'est laissé à *), les deux sont combinés par un OU, pas par un ET. Ainsi 0 0 15 * 5 ne signifie pas « le 15, si c'est un vendredi » — cela signifie « le 15 du mois, OU chaque vendredi », ce qui se déclenche bien plus souvent que la plupart des gens ne l'imaginent. Si un seul des deux compte réellement, laissez l'autre à *.
La numérotation des jours de la semaine peut aussi surprendre : 0 et 7 signifient tous deux dimanche dans la plupart des implémentations cron, lundi étant 1. Et surtout, cron s'exécute toujours dans le fuseau horaire configuré du serveur — couramment UTC sur les infrastructures cloud — et non dans le fuseau horaire local de la personne qui a configuré le planning, si bien qu'une tâche prévue pour « 9h » peut se déclencher à une heure locale différente de celle attendue tant que le fuseau horaire de l'hôte n'est pas confirmé. Les planificateurs cloud comme le schedule: de GitHub Actions, AWS EventBridge et les CronJob Kubernetes utilisent tous cette même syntaxe à cinq champs comme base, parfois avec des extensions propres au fournisseur (un champ secondes optionnel, un raccourci de jour nommé), si bien qu'un planning construit ici se transpose directement vers ces plateformes avec une traduction minimale.
Questions fréquentes
Comment exécuter quelque chose toutes les 30 secondes ?
La plus petite unité du cron classique est la minute. La solution courante consiste en deux entrées : une normale, une avec `sleep 30 &&` avant la commande — ou utilisez les timers systemd, qui prennent en charge les secondes.
Pourquoi ma tâche de 9h00 s'est-elle exécutée à une heure étrange ?
Presque toujours le fuseau horaire : crontab s'exécute dans l'heure locale du serveur (souvent UTC sur les machines cloud). Vérifiez avec `date` sur l'hôte, ou définissez CRON_TZ si pris en charge.
Comment tester une expression en toute sécurité ?
Faites-la pointer d'abord vers une commande de journalisation : `* * * * * date >> /tmp/cron-test.log`, confirmez la cadence, puis substituez la vraie commande. Vérifiez aussi que l'utilisateur crontab dispose du PATH nécessaire — l'environnement de cron est minimal.
Que se passe-t-il quand le jour du mois et le jour de la semaine sont tous les deux définis ?
Ils se combinent par OU, pas par ET — un planning comme `0 0 15 * 5` s'exécute le 15 du mois ET chaque vendredi, pas uniquement un vendredi qui tombe le 15. Cron seul ne peut pas exprimer une intersection des deux conditions ; cette vérification doit se faire à l'intérieur de la tâche elle-même.
Cron tient-il compte du changement d'heure (heure d'été) ?
Cela dépend de l'implémentation, mais le cron classique suit généralement l'heure locale de l'horloge système, y compris les décalages liés au changement d'heure — ce qui signifie qu'une tâche planifiée pendant l'heure de bascule (avance ou recul) peut s'exécuter zéro ou deux fois ce jour-là. Les serveurs réglés sur UTC évitent complètement ce problème, ce qui est une raison de plus pour laquelle la plupart des planificateurs de production utilisent UTC par défaut.
Puis-je combiner une plage et un pas dans le même champ, par exemple un jour sur deux en semaine ?
Oui — un pas peut s'appliquer à une plage plutôt qu'à un simple astérisque : `1-5/2` dans le champ jour de la semaine signifie « un jour sur deux entre lundi et vendredi », c'est-à-dire lundi, mercredi, vendredi. Cette forme combinée plage/pas est prise en charge par la plupart des implémentations cron modernes (dont Vixie cron et systemd), mais pas par les plus anciennes conformes à POSIX, donc testez-la une fois avant de vous y fier dans un environnement historique.
Outils similaires
Signaler un problème
Générateur d'Expression Cron
Commentaires
Pas encore de commentaires — soyez le premier à en écrire un !