Expression cron : toutes les 30 secondes

Le cron standard ne peut pas s’exécuter plus d’une fois par minute. Voici comment obtenir malgré tout un intervalle de 30 secondes.

Mis à jour le

* * * * *
Expression cron
Impossible avec une seule ligne cron — voir ci-dessous
Planification

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

Ce que signifie * * * * *

Cron lit cinq champs de gauche à droite : minute, heure, jour du mois, mois et jour de la semaine. Cette page présente l’expression standard la plus proche (chaque minute) et explique comment obtenir un intervalle de 30 secondes.

ChampValeurSignificationValeurs autorisées
Minute*chaque minute0–59
Heure*chaque heure0–23
Jour du mois*chaque jour du mois1–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 exécutions.

Cas d’usage courants

  • Interrogation très fréquente (polling)

Bon à savoir

Le cron standard ne descend pas en dessous d’une minute. Pour exécuter une tâche toutes les 30 secondes, lancez une tâche chaque minute qui s’exécute deux fois : * * * * * /job.sh; sleep 30; /job.sh, ou utilisez un timer systemd (OnCalendar=*:*:0/30) ou un worker de longue durée.

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

crontab (crontab -e) :

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

GitHub Actions (heures en UTC) : GitHub Actions exécute les planifications au plus toutes les 5 minutes, donc celle-ci serait limitée sur cette plateforme.

on:
  schedule:
    - cron: '* * * * *'

Kubernetes CronJob :

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "* * * * *"
  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('* * * * *', () => {
  // your job
});

Planifications associées

Questions fréquentes

Quelle est l’expression cron pour toutes les 30 secondes ?
Le cron standard ne peut pas s’exécuter plus d’une fois par minute. Utilisez * * * * * avec une pause de 30 secondes, un timer systemd ou un processus worker. Le cron standard ne descend pas en dessous d’une minute. Pour exécuter une tâche toutes les 30 secondes, lancez une tâche chaque minute qui s’exécute deux fois : * * * * * /job.sh; sleep 30; /job.sh, ou utilisez un timer systemd (OnCalendar=*:*:0/30) ou un worker de longue durée.
Quel fuseau horaire utilise cron ?
Le cron classique utilise le fuseau horaire local du serveur, et de nombreux 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.