Créez une planification cron avec des menus déroulants ou collez-en une pour la lire en langage clair. Voyez les 10 prochaines exécutions dans votre fuseau horaire et copiez-la pour crontab, GitHub Actions, Vercel ou Kubernetes.
Générateur d'expressions cron
Une expression cron se compose de cinq champs séparés par des espaces : minute, heure, jour du mois, mois et jour de la semaine. */5 * * * * s'exécute toutes les cinq minutes ; 0 9 * * 1-5 s'exécute à 9:00 en semaine. Créez-en une avec les menus déroulants ou collez la vôtre pour la voir expliquée avec ses dix prochaines exécutions.
Les cinq champs, dans l'ordre
Champ
Valeurs autorisées
Minute
Heure
Jour du mois
Mois
1-12 ou JAN-DEC
Jour de la semaine
0-7 ou SUN-SAT (0 et 7 désignent le dimanche)
Choisissez les valeurs champ par champ ou collez une expression. L'outil l'explique en langage clair, signale les erreurs, liste les dix prochaines exécutions dans n'importe quel fuseau horaire et vous donne la même planification prête pour crontab, GitHub Actions, Vercel et Kubernetes.
Saisissez ou collez une expression dans le champ, ou cliquez sur l'un des préréglages. Les raccourcis comme @daily et @weekly fonctionnent aussi.
Ou utilisez le générateur : chacun des cinq champs propose tous, tous les N, des valeurs précises ou une plage. L'expression se met à jour au fil de vos choix.
Lisez la ligne en langage clair pour vérifier que la planification dit bien ce que vous vouliez. Les erreurs, comme une minute à 61 ou un champ manquant, sont nommées.
Choisissez un fuseau horaire pour voir les dix prochaines exécutions telles qu'elles s'y produiraient, changements d'heure compris.
Copiez la planification au format attendu par votre plateforme. Tout s'exécute dans votre navigateur.
La plupart des planificateurs hébergés, dont GitHub Actions et les cron jobs de Vercel, lisent la planification en UTC. Convertissez votre heure locale avant d'enregistrer, sinon la tâche s'exécutera des heures trop tôt ou trop tard.
Si vous remplissez à la fois le champ jour du mois et le champ jour de la semaine, cron exécute la tâche quand l'un ou l'autre correspond, pas quand les deux correspondent. 0 0 13 * 5 s'exécute chaque 13 du mois et chaque vendredi, pas seulement le vendredi 13.
Choisissez une minute inhabituelle comme 17 3 * * * plutôt que 0 0 * * *. Énormément de tâches sont réglées sur l'heure pile, donc les services partagés et les runners hébergés sont alors les plus chargés.
Les tâches planifiées entre 01:00 et 03:00 heure locale peuvent être sautées ou exécutées deux fois lors des changements d'heure. Planifiez les tâches critiques en UTC ou en dehors de cette plage.
GitHub Actions n'exécute pas de planification plus souvent que toutes les 5 minutes et peut les démarrer en retard quand ses runners sont chargés, alors ne comptez pas sur un timing exact.
Questions fréquentes
Comment écrire une tâche cron qui s'exécute toutes les 5 minutes ?
Utilisez */5 * * * *. Le */5 dans le champ minute signifie toutes les cinq minutes à partir de 0, donc elle s'exécute à :00, :05, :10 et ainsi de suite. Pour toutes les 10 ou 15 minutes, remplacez le nombre par 10 ou 15.
Que signifie */ dans cron ?
La barre oblique définit un pas. */15 dans le champ minute signifie toutes les 15 minutes de l'heure : 0, 15, 30 et 45. Vous pouvez aussi parcourir une plage par pas : 9-17/2 dans le champ heure signifie 9, 11, 13, 15 et 17.
Dimanche vaut-il 0 ou 7 dans cron ?
Les deux. Le cron standard accepte 0 et 7 pour le dimanche, puis 1 pour lundi jusqu'à 6 pour samedi. Les noms de jours comme SUN et MON évitent complètement la question.
Pourquoi mon expression a-t-elle six ou sept champs ?
Quartz, Spring et certains planificateurs cloud ajoutent un champ des secondes au début et parfois une année à la fin. Le crontab standard, GitHub Actions, Vercel et Kubernetes utilisent cinq champs. Cet outil lit la forme à cinq champs ; retirez le champ des secondes pour vérifier le reste.
Quel fuseau horaire cron utilise-t-il ?
Un crontab utilise le fuseau horaire du serveur sur lequel il tourne, sauf si le système prend en charge un réglage CRON_TZ ou TZ. GitHub Actions et Vercel utilisent UTC. Les CronJobs Kubernetes utilisent le fuseau du contrôleur, sauf si vous définissez le champ timeZone dans la spec.
Comment lire une expression cron
Lisez les champs de gauche à droite : à cette minute, de cette heure, ce jour du mois, ce mois-ci, ce jour de la semaine. Une étoile signifie n'importe quelle valeur. Ainsi 30 6 * * 1 se lit : à la minute 30 de l'heure 6, n'importe quel jour du mois, n'importe quel mois, le lundi. Soit 06:30 chaque lundi.
Chaque champ peut contenir une valeur unique, une liste (1,15), une plage (1-5), un pas (*/10) ou un mélange (0-30/10,45). Le générateur de cette page les écrit pour vous, et la ligne de description relit le résultat pour que vous puissiez le vérifier.
Le piège du jour du mois et du jour de la semaine
Quand les deux champs de jour ont une valeur autre qu'une étoile, cron les traite comme des alternatives. Une tâche réglée sur 0 0 1 * 1 s'exécute le premier du mois et chaque lundi. Cela surprend beaucoup de gens qui s'attendaient au premier lundi du mois.
Cron ne peut pas exprimer directement le premier lundi. La solution habituelle consiste à planifier 0 0 1-7 * * et à faire quitter le script sauf si le jour est un lundi, ou à utiliser un planificateur qui a sa propre syntaxe pour cela.
Où votre planification va s'exécuter
Chaque plateforme ci-dessous utilise les mêmes cinq champs, mais les présente différemment et certaines ajoutent leurs propres règles. Copiez l'extrait correspondant à la vôtre depuis l'outil, puis consultez sa documentation pour connaître les limites de fréquence des tâches sur votre offre.
Toutes les 5 minutes
Toutes les 15 minutes
Toutes les heures, à l'heure pile
Toutes les 6 heures
Tous les jours à minuit
En semaine à 9:00
Le vendredi à 17:30
Le dimanche à 3:00
Le premier jour de chaque mois
Le premier jour de chaque trimestre à 8:00
Toutes les 10 minutes aux heures de bureau
Une fois par an, le 1 janvier
Ce que signifie chaque caractère dans un champ cron
Symbole
Signification
Exemple
Se lit
Toutes les valeurs
* dans le champ heure
Toutes les heures
Une liste de valeurs
1,15 dans le champ jour
Le 1er et le 15
Une plage
1-5 dans le champ jour de la semaine
Du lundi au vendredi
Un pas à travers une plage
*/10 dans le champ minute
Minutes 0, 10, 20, 30, 40, 50
JAN-DEC
Noms de mois (casse indifférente)
De juin à août
SUN-SAT
Noms de jours ; 0 et 7 désignent tous deux le dimanche
sat,sun
Les week-ends
@daily
Raccourci pour 0 0 * * *
@hourly, @weekly, @monthly, @yearly
Identique à la forme à cinq champs
Minute
Heure
Jour du mois
Mois
Jour de la semaine
Janv
Mars
Avr
Mai
Juin
Juil
Août
Sept
Oct
Nov
Dim
Lun
Mar
Mer
Jeu
Ven
Sam
Mode {field}
Tous
Tous les N
Précis
Plage
Pas {field}
Valeurs {field}, séparées par des virgules
{field} de
{field} à
Votre planification
Expression cron
Copier l'expression
Créez-la champ par champ
Modifier un champ ci-dessous remplace l'expression ci-dessus.
10 prochaines exécutions
Fuseau horaire
Chargement de votre horloge…
Aucune exécution dans les cinq prochaines années. Vérifiez les champs jour et mois, par exemple 31 dans un mois qui compte 30 jours.
Corrigez l'expression pour voir les heures d'exécution.
S'exécute à moins de 5 minutes d'intervalle. GitHub Actions ne planifiera pas aussi souvent.
Copier pour votre plateforme
Copier l'extrait
Ajoutez la ligne avec crontab -e. Elle s'exécute dans le fuseau horaire du serveur ; remplacez la commande par la vôtre.
À placer dans un fichier de workflow sous .github/workflows. GitHub lit la planification en UTC.
Vercel lit la planification en UTC et appelle le chemin indiqué avec une requête GET.
Le champ timeZone définit le fuseau dans lequel la planification est lue. Remplacez l'image et la commande par celles de votre tâche.