PK Systems PK Systems
Outils pour développeurs

Générateur de cron

Construisez des expressions cron visuellement. Aperçu humain, prochaines exécutions, copie en un clic.

Générateur de cron

Expression cron

* * * * *

Modifiez n'importe quel champ ci-dessus pour voir l'expression se mettre à jour.

Qu'est-ce qu'une expression cron ?

Une expression cron est une planification à cinq champs utilisée par les ordonnanceurs de tâches de type Unix, les systèmes d'intégration continue, les CronJobs Kubernetes, AWS EventBridge, GitHub Actions et la plupart des exécuteurs de tâches modernes. Chaque champ contrôle une unité de temps — minute, heure, jour du mois, mois et jour de la semaine — et prend en charge quatre raccourcis : * (n'importe quel), une liste séparée par des virgules (0,15,30,45), une plage (1-5) et un pas (*/10). Combinez-les et vous pouvez décrire presque toute planification récurrente sans rédiger un calendrier à la main.

Comment utiliser ce générateur

Choisissez un préréglage pour démarrer instantanément, ou construisez l'expression champ par champ. Chaque champ a quatre modes : Chaque émet * ; Liste spécifique accepte des valeurs séparées par des virgules ; Plage accepte une paire début–fin ; Pas accepte un intervalle (*/N) avec un décalage de départ optionnel. L'expression et une description en langage clair se mettent à jour en direct lorsque vous modifiez quoi que ce soit. Pour faire l'inverse, déposez une chaîne cron dans la zone d'analyse en bas — l'outil la décode sous forme lisible et vous montre les cinq prochains déclenchements dans votre fuseau horaire local.

Référence des champs

Minute : 0–59. Heure : 0–23. Jour du mois : 1–31. Mois : 1–12 (janvier = 1). Jour de la semaine : 0–6 avec dimanche = 0 dans le cron Unix classique — 7 est aussi accepté comme dimanche par la plupart des analyseurs modernes. Lorsque jour du mois et jour de la semaine sont tous deux définis sur des valeurs autres que *, le cron classique se déclenche sur l'UNE OU L'AUTRE des conditions (un OU logique), ce qui surprend beaucoup de monde. Choisissez l'un ou l'autre pour un comportement prévisible.

Questions fréquentes

Est-ce compatible avec le cron Quartz / Spring ?
Non — ce générateur émet du cron Unix classique à 5 champs. Quartz et Spring utilisent une variante à 6 ou 7 champs qui ajoute un champ de secondes en tête et une année optionnelle en fin. La structure est similaire, donc vous pouvez généralement coller cette sortie et préfixer 0 pour obtenir une chaîne compatible Quartz, mais les jetons spéciaux comme L (last) et W (weekday) sont propres à Quartz et n'apparaîtront pas ici.
Comment l'analyseur calcule-t-il les prochaines exécutions ?
Lorsque vous cliquez sur Expliquer, l'outil parcourt l'expression vers l'avant et vous montre les cinq prochains moments où elle se déclenchera, rendus dans le fuseau horaire local de votre navigateur. Tout le calcul se fait localement — vos chaînes cron ne quittent jamais la page.
Et les fuseaux horaires ?
Le générateur et l'aperçu des prochaines exécutions traitent tous deux l'expression comme si elle s'exécutait dans le fuseau horaire local de votre navigateur. Les ordonnanceurs cron en production varient : Linux crond utilise le fuseau horaire système, AWS EventBridge utilise UTC par défaut, GitHub Actions utilise UTC, Kubernetes utilise le fuseau horaire du cluster. Confirmez toujours le fuseau horaire de votre exécuteur avant le déploiement.
Comment exprimer « le dernier jour du mois » ?
Le cron Unix classique n'a pas de jeton « dernier jour » natif, donc l'approximation portable la plus proche est 59 23 28-31 * *, qui se déclenche chaque jour à partir du 28 à 23h59. Le travail lui-même doit vérifier date -d 'tomorrow' +%-d = 1 (ou l'équivalent dans votre langage) et passer son tour si ce n'est pas réellement la fin du mois. Le cron Quartz prend en charge L pour cela — mais les expressions Quartz ne s'exécutent pas sur le cron Linux ordinaire.
Puis-je exécuter une tâche toutes les 90 minutes ?
Pas avec une seule expression cron — les pas de cron se réinitialisent chaque heure, donc */90 ne fonctionne pas. La solution la plus proche est deux expressions : 0 0,3,6,9,12,15,18,21 * * * et 30 1,4,7,10,13,16,19,22 * * *, qui ensemble se déclenchent toutes les 90 minutes. Encore plus simple : planifiez toutes les 30 minutes et faites exit 0 dans le script lorsque ce n'est pas le bon créneau.
Pourquoi ma tâche se déclenche-t-elle deux fois lors du changement d'heure ?
Lorsque l'horloge avance, les tâches planifiées dans l'heure manquante sont généralement omises. Lorsqu'elle recule, les tâches dans l'heure répétée s'exécutent deux fois. Pour éviter cela, exécutez cron en UTC (cron.timezone = 'UTC' ou définissez TZ=UTC dans le crontab) et convertissez en heure locale à l'intérieur de la tâche — UTC n'a pas d'heure d'été.