TanodTools
FR

Expliquer une expression cron

Lisez une planification crontab en langage clair et listez ses prochaines exécutions, dans n'importe quel fuseau horaire.

Fonctionne entièrement dans votre navigateur

Minute
Heure
Jour du mois
Mois
Jour de la semaine

Prochaines exécutions

Laissez vide pour partir de maintenant.

    Cron standard à cinq champs (minute, heure, jour du mois, mois, jour de la semaine) tel qu'utilisé par Vixie cron, cronie et la plupart des systèmes Linux, plus les raccourcis du type @daily. Les formats Quartz et autres formats avec un champ des secondes sont détectés mais pas expliqués.

    Comment vérifier une expression cron

    1. Tapez ou collez les cinq champs de planification, comme */15 9-17 * * 1-5, ou choisissez un exemple. Une ligne crontab complète fonctionne aussi ; la commande qui suit le cinquième champ est ignorée.
    2. Lisez le résumé en clair et le détail de chaque champ. Une erreur est signalée dans le champ où elle se trouve.
    3. Consultez la liste des prochaines exécutions. Choisissez le fuseau horaire du serveur, et une autre heure de départ si vous voulez regarder plus loin.

    Lire une planification cron

    Pour expliquer une expression cron, il faut savoir comment cron la lit : il consulte sa table une fois par minute et exécute chaque tâche dont les cinq champs correspondent tous à l'heure actuelle, avec une exception pour les deux champs de jour décrite plus bas. Ainsi, */15 9-17 * * 1-5 signifie : aux minutes 0, 15, 30 et 45, de 9 h à 17 h, n'importe quel jour du mois, n'importe quel mois, du lundi au vendredi. La dernière exécution de la journée a lieu à 17:45, car le champ des heures couvre toute l'heure 17.

    L'outil analyse chaque champ comme le font Vixie cron et cronie, les versions fournies par la plupart des distributions Linux. Les noms de mois et de jours (en anglais, comme JAN ou MON) sont acceptés en majuscules ou en minuscules, et 7 compte comme dimanche. Un pas après un nombre seul, comme 5/10, est interprété comme 5-59/10, comme le font de nombreuses versions de cron ; certaines versions plus anciennes le rejettent, l'outil vous rappelle donc d'écrire la plage en entier. Les plages doivent aller du plus petit au plus grand : FRI-MON est signalé au lieu d'être bouclé, car le cron standard ne boucle pas les plages.

    Les prochaines exécutions sont calculées en parcourant le calendrier dans le fuseau horaire choisi : une expression qui ne peut correspondre qu'au 29 février trouve immédiatement la prochaine année bissextile, et une expression qui ne peut jamais correspondre, comme 0 0 31 2 *, est signalée comme ne s'exécutant jamais.

    Astuces

    Questions fréquentes

    Que signifient les cinq champs ?

    Dans l'ordre : minute (0-59), heure (0-23), jour du mois (1-31), mois (1-12 ou JAN-DEC) et jour de la semaine (0-7 ou SUN-SAT, où 0 et 7 désignent tous deux le dimanche). Chaque champ accepte une valeur unique, une liste comme 1,15, une plage comme 9-17, un pas comme */15 ou 0-30/10, ou * pour toutes les valeurs.

    Pourquoi ma tâche s'exécute-t-elle plus de jours que prévu ?

    Quand les champs jour du mois et jour de la semaine sont tous deux restreints, cron s'exécute les jours qui correspondent à l'un ou à l'autre, pas aux deux. 0 9 1 * 1 s'exécute le 1er de chaque mois et chaque lundi. C'est le comportement de Vixie cron et de cronie. Particularité de cette même règle : un champ qui commence par *, comme */2, est considéré comme sans restriction, et les deux champs doivent alors correspondre.

    Quel fuseau horaire cron utilise-t-il ?

    Celui de la machine ou du conteneur sur lequel il tourne, sauf si la crontab définit CRON_TZ ou TZ. Beaucoup de serveurs sont en UTC : vérifiez-le avant de vous fier aux heures affichées. Choisissez le fuseau du serveur dans la liste pour voir ses heures d'exécution.

    Que se passe-t-il lors du changement d'heure ?

    La liste suit l'horloge du fuseau choisi : une heure sautée lors du passage à l'heure d'été est omise, et une heure qui se produit deux fois lors du retour à l'heure d'hiver n'est listée qu'une fois. Vixie cron et cronie exécutent une tâche prévue pendant une heure sautée peu après le changement, et ne répètent pas les tâches pendant l'heure répétée ; les autres planificateurs varient. Une note s'affiche quand une période listée comprend un changement d'heure.

    Les secondes ou la syntaxe Quartz sont-elles prises en charge ?

    Non. Les expressions à six ou sept champs, ou contenant ?, L, W ou #, viennent de Quartz, Spring et planificateurs similaires, où le premier champ correspond aux secondes. L'outil le signale au lieu de deviner, car les lire comme du cron standard donnerait une mauvaise planification.

    Que signifient @daily, @hourly et les autres raccourcis ?

    @hourly équivaut à 0 * * * *, @daily et @midnight à 0 0 * * *, @weekly à 0 0 * * 0, @monthly à 0 0 1 * *, et @yearly et @annually à 0 0 1 1 *. @reboot s'exécute une fois au démarrage du service cron : il n'y a donc aucun horaire à lister.