Générateur d'Expression Cron

Construisez visuellement vos expressions cron et prévisualisez les prochaines exécutions.

* * * * *
Chaque minute
Cliquez sur l'expression pour la copier
Minute
0-59
Heure
0-23
Jour (mois)
1-31
Mois
1-12
Jour (semaine)
0-7 (0,7=dim)

Expressions courantes

* * * * *
Chaque minute
*/5 * * * *
Toutes les 5 minutes
*/15 * * * *
Toutes les 15 minutes
0 * * * *
Chaque heure
0 */2 * * *
Toutes les 2 heures
0 0 * * *
Chaque jour à minuit
0 9 * * 1-5
Lun-Ven à 9h
0 0 * * 0
Chaque dimanche à minuit
0 0 1 * *
Le 1er de chaque mois
0 0 1 1 *
Chaque 1er janvier
30 4 * * *
Chaque jour à 4h30
0 22 * * 1-5
Lun-Ven à 22h

Prochaines exécutions

Référence de la syntaxe Cron

Caractères spéciaux

* Toutes les valeurs
, Séparateur de valeurs
- Plage de valeurs
/ Valeur d'incrément

Jours de la semaine

0 ou 7 Dimanche
1 Lundi
2 Mardi
3 Mercredi
4 Jeudi
5 Vendredi
6 Samedi

Mois

1 Janvier
2 Février
3-12 Mars à Décembre

Exemples de syntaxe

*/5 Toutes les 5 unités
1,15 Aux valeurs 1 et 15
1-5 De 1 à 5 inclus
1-5/2 1, 3, 5 (plage avec pas)

Guide complet des tâches Cron

Qu'est-ce que Cron ?

Cron est le planificateur de tâches des systèmes Unix/Linux. Il permet d'exécuter des commandes ou scripts à des intervalles réguliers — toutes les minutes, toutes les heures, quotidiennement, hebdomadairement ou selon des plannings complexes. La syntaxe cron est devenue un standard universel utilisé bien au-delà de Linux : GitHub Actions, Kubernetes CronJobs, AWS CloudWatch, les CI/CD pipelines, et la plupart des frameworks web l'utilisent.

Les 5 champs expliqués

Chaque expression cron standard se compose de 5 champs séparés par des espaces :

  • Minute (0-59) — à quelle minute de l'heure
  • Heure (0-23) — à quelle heure du jour (format 24h)
  • Jour du mois (1-31) — quel jour du mois
  • Mois (1-12) — quel mois de l'année
  • Jour de la semaine (0-7) — quel jour de la semaine (0 et 7 = dimanche)

Utilisation dans les systèmes modernes

crontab (Linux)

La commande classique. crontab -e pour éditer, crontab -l pour lister. Chaque ligne suit le format : expression + commande. Les logs sont dans /var/log/syslog.

GitHub Actions

Utilisez schedule avec une expression cron pour déclencher des workflows automatiquement. Attention : les exécutions peuvent être retardées en période de forte charge.

Kubernetes CronJob

Les CronJobs K8s créent des Jobs selon un planning cron. Parfait pour les backups, nettoyages de données, rapports périodiques dans les clusters.

CI/CD Pipelines

GitLab CI, Jenkins, CircleCI — tous supportent le déclenchement par expression cron pour les builds nocturnes, tests de régression et déploiements planifiés.

Bonnes pratiques

  • Évitez les exécutions trop fréquentes : * * * * * (chaque minute) peut surcharger votre système. Commencez large et réduisez l'intervalle si nécessaire.
  • Décalez les heures d'exécution : ne planifiez pas tout à minuit pile (0 0 * * *). Utilisez des minutes décalées (17 3 * * *) pour répartir la charge.
  • Gérez les fuseaux horaires : crontab utilise le fuseau horaire du système. GitHub Actions utilise UTC. Documentez toujours le fuseau horaire utilisé.
  • Capturez les erreurs : redirigez stdout et stderr vers un fichier log. Exemple : 0 2 * * * /script.sh >> /var/log/cron.log 2>&1
  • Testez avant de déployer : utilisez ce générateur pour vérifier que votre expression fait bien ce que vous attendez.

Questions fréquentes

Quelle est la fréquence minimale d'un cron ?

La syntaxe cron standard a une résolution d'une minute — c'est la fréquence minimale avec * * * * *. Pour des exécutions plus fréquentes (toutes les 30 secondes par exemple), vous devez utiliser un timer systemd, un outil comme watch, ou deux crons décalés via un sleep 30.

Comment planifier une tâche le dernier jour du mois ?

La syntaxe cron standard ne supporte pas directement « dernier jour du mois ». La solution la plus courante est d'utiliser un script qui vérifie la date : 0 0 28-31 * * [ "$(date +\%d -d tomorrow)" = "01" ] && /votre-script.sh. Certains systèmes étendus (comme Quartz) supportent le caractère L pour « last ».

Quel fuseau horaire utilise cron ?

Par défaut, crontab utilise le fuseau horaire du système (configuré via timedatectl ou /etc/timezone). Vous pouvez le surcharger avec CRON_TZ=Europe/Paris en début de crontab. GitHub Actions et Kubernetes utilisent UTC par défaut. AWS EventBridge permet de spécifier le fuseau horaire directement.

Comment déboguer une tâche cron qui ne s'exécute pas ?

Vérifiez dans l'ordre : 1) Le service cron est-il actif ? (systemctl status cron) 2) L'expression est-elle correcte ? (testez avec ce générateur) 3) Le script a-t-il les permissions d'exécution ? (chmod +x) 4) Les variables d'environnement sont-elles définies ? (cron a un PATH minimal) 5) Redirigez les erreurs vers un log (2>&1 >> /tmp/cron.log) 6) Vérifiez les logs système (grep CRON /var/log/syslog).

Comment empêcher l'exécution simultanée d'un même cron ?

Utilisez flock pour créer un verrou : */5 * * * * flock -n /tmp/myjob.lock /path/to/script.sh. Le flag -n fait que la nouvelle exécution est annulée si le verrou est déjà pris. Alternatives : un fichier PID dans le script, ou solo (outil dédié à ce problème).