Expression cron : le premier lundi du mois

0 9 1-7 * * s'exécute le premier lundi du mois. Voici le sens de chaque champ, la prochaine exécution et son utilisation dans crontab, GitHub Actions, Kubernetes et Node.js.

Mis à jour le

0 9 1-7 * *
Expression cron
Le premier lundi du mois
Planification

Ouvrir dans le générateur d'expressions cron →

Ce que signifie 0 9 1-7 * *

Cron lit cinq champs de gauche à droite : minute, heure, jour du mois, mois et jour de la semaine. Pour le premier lundi du mois, ils valent :

ChampValeurSignificationValeurs autorisées
Minute000–59
Heure909:000–23
Jour du mois1-7du 1 au 71–31
Mois*chaque mois1–12
Jour de la semaine*chaque jour de la semaine0–6 (dim–sam)

Prochaines exécutions

Calculé dans votre navigateur pour votre fuseau horaire. Sur un serveur, cron utilise le fuseau horaire du serveur (souvent UTC).

  1. Activez JavaScript pour voir les prochaines heures d'exécution.

Usages courants

  • Réunions d'équipe mensuelles
  • Rapports mensuels un jour de semaine

Bon à savoir

Le cron standard ne sait pas exprimer seul « premier lundi ». Lancez à 9 h les jours 1 à 7 et ne laissez la commande s'exécuter que le lundi : 0 9 1-7 * * [ "$(date +\%u)" = 1 ] && /job.sh. N'écrivez pas 0 9 1-7 * 1 : lorsque les deux champs de jour sont renseignés, le cron classique s'exécute si l'un ou l'autre correspond, donc il s'exécuterait aussi chaque lundi.

Utilisation dans crontab, GitHub Actions, Kubernetes et Node.js

crontab (crontab -e) :

0 9 1-7 * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1

GitHub Actions (heures en UTC) :

on:
  schedule:
    - cron: '0 9 1-7 * *'

CronJob Kubernetes :

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 9 1-7 * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: my-job
              image: alpine:3
              command: ["sh", "-c", "echo running"]

Node.js (node-cron) :

import cron from 'node-cron';
cron.schedule('0 9 1-7 * *', () => {
  // your job
});

Planifications associées

Questions fréquentes

Quelle est l'expression cron pour le premier lundi du mois ?
0 9 1-7 * *. Elle s'exécute à la minute 0, à 09:00, les jours 1 à 7.
Quel fuseau horaire utilise cron ?
Le cron classique utilise le fuseau horaire local du serveur, et beaucoup de serveurs fonctionnent en UTC. GitHub Actions utilise toujours UTC. Les CronJobs Kubernetes utilisent le fuseau horaire du contrôleur, sauf si vous définissez spec.timeZone (par exemple Europe/Berlin).
Comment tester une expression cron ?
Collez-la dans le générateur d'expressions cron pour la voir en langage clair avec les prochaines exécutions, puis vérifiez le journal de votre tâche après la première exécution planifiée.