Générateur d'expressions cron

Créez une expression cron avec un formulaire simple, ou collez-en une et lisez ce qu'elle signifie en français. Les 10 prochaines exécutions s'affichent dans votre fuseau horaire, avec les changements d'heure signalés.

Gratuit et privé. Tout se passe dans votre navigateur, rien n'est envoyé.

Comment ça marche

  1. Choisissez une planificationPartez d'une planification courante ou réglez chaque champ dans le formulaire : chaque valeur, tous les n, valeurs précises ou plage.
  2. Relisez-la en clairL'expression est expliquée en français, vous pouvez donc vérifier qu'elle fait bien ce que vous voulez.
  3. Vérifiez les prochaines exécutionsComparez les 10 prochaines exécutions dans le fuseau horaire de votre serveur, puis copiez l'expression.

Ce que signifie une expression cron

Une expression cron standard compte cinq champs séparés par des espaces : minute, heure, jour du mois, mois et jour de la semaine. Un astérisque veut dire toutes les valeurs, une virgule sépare une liste (1,15), un tiret marque une plage (9-17) et une barre oblique fixe un pas (*/15 signifie toutes les 15 minutes). Ainsi, 30 2 * * 1-5 s'exécute à 2 h 30 du matin, du lundi au vendredi.

Collez n'importe quelle expression : l'outil la décrit en une phrase, détaille chaque champ et calcule les dix prochaines exécutions. Les raccourcis comme @daily et @hourly sont aussi compris. En cas d'erreur, le message indique le champ et la position au lieu d'une vague erreur de syntaxe.

Les pièges qui surprennent même les habitués

Quand le jour du mois et le jour de la semaine sont tous les deux définis, le cron classique s'exécute les jours qui correspondent à l'un ou à l'autre, pas aux deux : 0 0 13 * 5 s'exécute tous les 13 du mois et tous les vendredis. Si l'un des deux champs commence par un astérisque, comme dans */2, les deux doivent correspondre. L'explication le signale chaque fois que c'est le cas.

Cron utilise le fuseau horaire de la machine sur laquelle il tourne. Une tâche prévue à 2 h 30 ne s'exécute pas la nuit où l'on avance l'heure dans de nombreux pays, et une tâche à 1 h 30 peut rencontrer deux fois la même heure quand on recule l'heure. Choisissez le fuseau de votre serveur dans la liste des exécutions pour voir exactement quels jours sont concernés. Les mois qui n'ont pas de 31 sont tout simplement sautés.

Standard, avec secondes et Quartz

La crontab de Linux, les CronJobs Kubernetes et GitHub Actions utilisent la forme à cinq champs. Certaines bibliothèques ajoutent un champ des secondes au début. Quartz, utilisé par de nombreux planificateurs Java, a les secondes, une année facultative, numérote les jours de la semaine de 1 à 7 en commençant par le dimanche et exige ? dans l'un des champs de jour. Il ajoute aussi L pour le dernier jour, W pour le jour ouvré le plus proche et # pour le nième jour de la semaine du mois. Choisissez la syntaxe en haut ; en changeant de syntaxe, l'expression est convertie quand c'est possible.

Questions fréquentes

Que signifie */5 * * * * ?

La tâche s'exécute toutes les 5 minutes, à la minute 0, 5, 10 et ainsi de suite, à chaque heure, tous les jours.

Quel fuseau horaire cron utilise-t-il ?

Celui du système qui l'exécute, souvent UTC sur les serveurs. Kubernetes et certains planificateurs cloud permettent de choisir un fuseau. Sélectionnez le bon fuseau dans la liste des exécutions pour voir les heures réelles.

Comment exécuter une tâche le dernier jour du mois ?

Le cron standard n'a pas de symbole pour cela. Quartz accepte L dans le champ du jour du mois, par exemple 0 0 0 L * ?. En cron classique, une astuce courante consiste à exécuter la tâche du 28 au 31 et à vérifier la date dans le script.

Pourquoi ma tâche ne s'exécute-t-elle pas le 31 chaque mois ?

Parce que beaucoup de mois ont moins de jours. Cron saute ces mois au lieu de s'exécuter le dernier jour.

Mon expression est-elle envoyée quelque part ?

Non. Tout, y compris les heures d'exécution, est calculé dans votre navigateur.

Est-ce que ça fonctionne hors ligne ?

Oui. Après une première visite de la page, l'outil continue de fonctionner sans connexion internet.