Aller au contenu
CronExplain

Expression cron pour le dernier jour du mois

Les tâches de fin de mois, comme la clôture comptable ou l’archivage, doivent s’exécuter le dernier jour de chaque mois, qu’il compte 28, 29, 30 ou 31 jours. Quartz, Spring et AWS l’expriment avec L ; le crontab standard ne le peut pas, d’où l’astuce courante d’exécuter les jours 28 à 31 et de vérifier la date dans le script.

La même planification dans chaque dialecte

DialecteExpression
crontab standardNon représentable : L, W et # ne sont pas pris en charge.
6 champs (secondes)Non représentable : L, W et # ne sont pas pris en charge.
Quartz0 0 0 L * ?
Spring0 0 0 L * *
AWS EventBridgecron(0 0 L * ? *)
GitHub ActionsNon représentable : L, W et # ne sont pas pris en charge.
Kubernetes CronJobNon représentable : L, W et # ne sont pas pris en charge.

Signification

Quartz : secondes en premier, année facultative, 1 = dimanche. Un seul champ de jour doit valoir « ? ». Prend en charge L, W et #.

✓ Valide · Signification

À 00:00, le dernier jour du mois

Préréglages

10 prochaines exécutions

#En UTCVotre heure locale
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

La même planification dans d’autres dialectes

  • crontab standardNon représentable : L, W et # ne sont pas pris en charge.
  • AWS EventBridgecron(0 0 L * ? *)Les règles EventBridge utilisent l’UTC.
  • Spring0 0 0 L * *

Générateur visuel

Choisissez des valeurs pour chaque champ. Le générateur produit une expression standard à cinq champs, convertie dans le dialecte choisi lorsque vous l’utilisez.

Minute
Heure
Jour du mois
Mois
Jour de la semaine
0 9 * * 1-5

Comment fonctionne cette expression

L’expression 0 0 0 L * ? est écrite en syntaxe Quartz. Lisez-la champ par champ, de gauche à droite : chaque champ restreint le moment où la tâche peut s’exécuter, et le planificateur la lance dès que l’heure courante correspond à tous. En clair, elle signifie : À 00:00, le dernier jour du mois.

L’adapter à votre planificateur

Crontab, Kubernetes et GitHub Actions utilisent la forme à cinq champs. Quartz et Spring attendent un champ secondes devant, et Quartz et AWS exigent en plus « ? » dans l’un des deux champs de jour — le tableau ci-dessus tient déjà compte de ces différences. N’oubliez pas que GitHub Actions et les règles AWS EventBridge s’exécutent en UTC, tandis que crontab utilise le fuseau du serveur : la même expression peut donc se déclencher à des heures locales différentes selon l’endroit où elle tourne.

Vérifiez avant de déployer

Collez votre expression finale dans l’explicateur ci-dessus et choisissez le fuseau de la machine qui l’exécutera. La liste des prochaines exécutions montre exactement quand la tâche démarrera, y compris autour des changements d’heure, pour repérer une erreur d’une heure avant la mise en production.

Questions fréquentes

Quelle est l’expression cron pour le dernier jour du mois ?
En crontab standard, c’est pas directement exprimable (voir le tableau). En Quartz, c’est 0 0 0 L * ?, et dans AWS EventBridge, cron(0 0 L * ? *).
Dans quel fuseau horaire s’exécutera-t-elle ?
Crontab utilise le fuseau local du serveur, Kubernetes celui du contrôleur ou spec.timeZone, et GitHub Actions ainsi que les règles AWS EventBridge utilisent l’UTC.
Comment tester la planification ?
Collez-la dans l’explicateur de cette page : il affiche les 10 prochaines exécutions dans n’importe quel fuseau, à côté de votre heure locale.
Puis-je la modifier légèrement ?
Oui. Modifiez l’expression dans l’outil ou utilisez le générateur visuel ; la description et les exécutions se mettent à jour pendant la saisie.