Analyseur d'expressions Cron
Analysez, expliquez et générez des expressions cron. Comprenez les planifications avec des descriptions lisibles.
Un analyseur cron lit les cinq champs d'une expression cron — minute, heure, jour du mois, mois et jour de la semaine — et vous dit en toutes lettres quand la tâche s'exécute, puis les prochaines fois où elle se déclenchera. Saisissez dans Expression cron : la page réanalyse à chaque frappe, et la valeur par défaut */5 * * * * est décrite comme Toutes les 5 minutes, avec les cinq prochaines exécutions listées en dessous.
🕐 Prochaines Exécutions
Exemples
À propos de Analyseur d'expressions Cron
La page découpe votre expression sur les espaces et exige exactement cinq champs ; tout autre nombre affiche le message d'expression invalide et vide les résultats. Les cinq parties sont ensuite montrées dans des cases étiquetées — Minute, Heure, Jour, Mois, Jour de la semaine — pour voir quelle valeur est tombée où, ce qui est justement là que se logent la plupart des erreurs de cron.
Deux sorties suivent. La description transforme chaque champ en une phrase : une étoile devient « chaque minute » ou disparaît, */n devient « toutes les n minutes » ou heures, une liste à virgules devient « aux minutes 0,30 », une plage devient « minutes 10-20 », et un numéro de jour devient un nom de jour dans votre langue. La liste des prochaines exécutions est calculée par force brute : la page part de la minute courante et avance minute par minute, jusqu'à un an, en collectant les cinq premiers moments correspondants. Une expression sans correspondance dans l'année — le 30 février, par exemple — donne donc une liste vide plutôt qu'une erreur.
Ces prochaines dates sont calculées dans le fuseau horaire de votre navigateur, avec les méthodes Date locales, et formatées selon votre langue. Un démon cron réel utilise le fuseau de la machine sur laquelle il tourne : un planning qui se lit bien ici peut donc se déclencher à une autre heure d'horloge sur le serveur. Vérifiez le fuseau du serveur avant de vous fier à cette liste pour une mise en production.
Deux comportements diffèrent d'un crontab Unix et méritent d'être connus. Quand les champs jour du mois et jour de la semaine sont tous deux restreints, crontab(5) précise que la commande s'exécute quand l'un ou l'autre correspond ; cette page exige que les deux correspondent, elle affichera donc moins d'exécutions que le serveur. Et elle n'accepte que des nombres avec les opérateurs *, virgule, tiret et barre oblique : les raccourcis @daily, @hourly et @reboot, ainsi que les noms de mois et de jours à trois lettres, ne sont pas reconnus.
Cas d'utilisation
Comment utiliser
Saisissez ou collez votre expression dans le champ Expression cron ; elle est analysée à chaque frappe, avec */5 * * * * pour commencer.
Lisez la description en clair sous le champ pour vérifier que le planning dit bien ce que vous vouliez.
Regardez les cases Minute, Heure, Jour, Mois et Jour de la semaine pour confirmer que chaque valeur est tombée dans le champ voulu.
Lisez les prochaines exécutions listées en dessous, en gardant à l'esprit qu'elles sont dans votre fuseau et non celui du serveur.
Cliquez l'un des dix exemples, de « chaque minute » au « premier jour du mois », pour charger une expression sûre et l'adapter.
Appuyez sur le bouton de copie à côté du champ pour placer l'expression finale dans le presse-papiers.
Astuces Pro
- Lisez les cinq cases sous le champ avant la description. Minute, Heure, Jour, Mois, Jour de la semaine dans cet ordre : c'est là qu'un planning décalé d'un champ se voit immédiatement.
- Considérez la liste des prochaines exécutions comme votre horloge, pas celle du serveur. Elle est bâtie sur l'heure locale de votre navigateur : comparez-la au fuseau du serveur avant de valider une ligne de crontab.
- Écrivez @daily et consorts en toutes lettres. L'analyseur veut cinq champs numériques : utilisez 0 0 * * * pour @daily, 0 * * * * pour @hourly et 0 0 1 * * pour @monthly ; il n'existe aucun équivalent de @reboot.
- Évitez de combiner un jour du mois et un jour de la semaine. Un crontab Unix exécute la tâche quand l'un ou l'autre correspond, cette page exige les deux, et les deux lectures divergent beaucoup ; mettez plutôt la seconde règle sur sa propre ligne de crontab.
- Cliquez d'abord un exemple, puis modifiez un seul champ. Les dix préréglages couvrent toutes les formes courantes, et changer une valeur dans une expression déjà correcte est bien moins risqué que d'en taper cinq de zéro.
Dépannage
La page indique que l'expression est invalide.
Elle exige exactement cinq champs séparés par des espaces. Six champs, comme dans les planificateurs qui gèrent les secondes, un raccourci comme @daily, ou une espace de trop dans une liste à virgules échoueront tous à ce contrôle. Comptez les champs et écrivez les raccourcis sous forme numérique.
Aucune prochaine exécution n'est listée alors que l'expression semble correcte.
La recherche ne regarde qu'un an devant elle, minute par minute : une combinaison qui n'arrive jamais — le trente février, par exemple — ou qui tombe hors de la fenêtre ne renvoie rien. Assouplissez un champ et regardez la liste réapparaître pour trouver lequel est impossible.
Les heures listées ne correspondent pas à celles où la tâche s'est réellement exécutée.
La liste est bâtie dans le fuseau de votre navigateur et le démon utilise celui du serveur. Une machine en UTC et un ordinateur en heure d'été européenne divergeront d'une ou deux heures. Vérifiez le fuseau du serveur, et rappelez-vous qu'un changement d'heure décale la liste locale mais pas un crontab en UTC.
Une plage avec un pas, comme 10-20/2, correspond à des valeurs au-delà de la plage.
Le contrôle de pas de cette page prend le début de la plage puis accepte chaque n-ième valeur à partir de là, sans faire respecter la borne haute : 10-20/2 correspond donc aussi à 22 et 24. Écrivez les valeurs voulues en liste à virgules — 10,12,14,16,18,20 — pour obtenir exactement la plage souhaitée.
Questions fréquemment posées
Un planificateur des systèmes de type Unix qui exécute des commandes à heures fixes. Chaque ligne d'un fichier crontab contient cinq champs de temps suivis de la commande ; le démon se réveille chaque minute et lance ce qui correspond. Les cinq champs sont minute, heure, jour du mois, mois et jour de la semaine, dans cet ordre — c'est ce que cette page analyse.
Chaque minute de chaque heure de chaque jour. Une étoile signifie aucune restriction sur ce champ : les cinq champs libres, l'expression correspond donc à chaque minute vérifiée par le démon. C'est le planning le plus fréquent que cron sache exprimer ; plus souvent exige un autre outil, car la résolution de cron est d'une minute.
Utilisez 0 0 * * * : minute 0, heure 0, n'importe quel jour du mois, n'importe quel mois, n'importe quel jour de la semaine. La page l'affiche comme « Tous les jours à minuit » et liste ce soir comme prochaine exécution. Pour une tâche hebdomadaire à minuit, ajoutez un jour dans le cinquième champ : 0 0 * * 0 correspond au dimanche à minuit.
Minute 0-59, heure 0-23, jour du mois 1-31, mois 1-12, et jour de la semaine 0-6 avec 0 pour dimanche. Les cases sous le champ reprennent cet ordre avec la valeur que vous avez saisie dans chacune, ce qui est le moyen le plus rapide de repérer un planning décalé d'un champ.
5 signifie à la cinquième minute de chaque heure, une fois par heure. */5 signifie toutes les cinq minutes — 0, 5, 10, etc. — soit douze fois par heure. Les confondre est l'erreur classique de cron ; la ligne de description affiche ici « Toutes les 5 minutes » pour l'une et « À la minute 5 » pour l'autre, ce qui lève l'ambiguïté.
Le vôtre. La page avance avec l'horloge locale de votre navigateur et met en forme les résultats selon votre langue. Un démon cron utilise le fuseau de la machine où il tourne : si votre ordinateur et le serveur diffèrent, les heures aussi. Vérifiez le fuseau du serveur avant de vous appuyer sur la liste.
Non. L'analyseur exige exactement cinq champs séparés par des espaces, faits de chiffres et des opérateurs *, virgule, tiret et barre oblique. Les raccourcis @daily, @hourly et @reboot, ainsi que les formes JAN et MON acceptées par beaucoup de crons, ne sont pas reconnus ici : écrivez l'équivalent numérique, @daily s'écrivant 0 0 * * *.
Parce que cette page exige que les deux champs correspondent, alors qu'un crontab Unix ne le fait pas. Le manuel crontab(5) indique que si les deux champs sont restreints, la commande s'exécute quand l'un ou l'autre correspond. Ainsi 0 0 13 * 5 s'exécute chaque 13 du mois et chaque vendredi sur un vrai serveur, alors que cette page ne liste que les vendredis 13.
Parce que rien n'a correspondu en un an de recherche. La page avance minute par minute pendant 525 600 minutes au maximum : une combinaison impossible comme 0 0 30 2 * — le trente février — ne trouve donc rien. Un planning rare mais valide, comme le 29 février, peut aussi tomber hors de la fenêtre.
C'est son rôle, avec deux réserves. Lisez les prochaines exécutions comme votre horloge locale et non celle du serveur, et souvenez-vous de la différence jour du mois / jour de semaine évoquée plus haut. Dans ces limites, voir les cinq premiers déclenchements est le moyen le plus rapide de repérer un planning décalé d'une heure ou d'un champ.