Générateur d'expressions Cron Unix

Générateur visuel d'expressions Cron pour configurer des tâches planifiées. Prend en charge le réglage des unités de temps minutes, heures, jours, mois et semaines, et génère automatiquement des expressions Cron standard.

Constructeur d'expression Cron

De Pas
Chaque minute
De À

Résultat généré

Saisissez une expression Cron existante pour renseigner automatiquement les options du formulaire

Prochaines exécutions

Comprendre les expressions Cron

Format d'une expression Cron


I. Structure de base des expressions Cron (avec sources autorisées)

Une expression cron standard se compose de 5 champs de temps et 1 champ de commande, selon les conventions des systèmes Unix et Linux. D'après la norme IEEE Std 1003.1-2017 (norme POSIX)[1] et la documentation Linux man 5 crontab[2], le format est le suivant :

* * * * * command-to-execute
│ │ │ │ │
│ │ │ │ └── Jour de la semaine (0-7, 0 et 7 représentent tous deux dimanche)
│ │ │ └──── Mois (1-12)
│ │ └────── Jour du mois (1-31)
│ └──────── Heure (0-23)
└────────── Minute (0-59)

Remarques de référence :

  1. La norme POSIX[1] définit la spécification minimale de compatibilité et impose la prise en charge des symboles *, , et -.
  2. Les implémentations cron des systèmes Linux (comme Cronie) étendent les fonctionnalités avec les pas (/) et les chaînes spéciales (@daily, etc.), comme le détaille leur documentation officielle[3].

II. Règles des symboles dans les champs de temps

Chaque champ de temps prend en charge les symboles spéciaux suivants :

Symbole Description Exemple
* Correspond à n'importe quelle valeur * dans les minutes = chaque minute
, Indique plusieurs valeurs 1,3,5 = minutes 1, 3 et 5
- Définit une plage 10-15 = minutes 10 à 15
/ Pas (intervalle) */5 dans les minutes = toutes les 5 minutes
? « Aucune valeur spécifique » (uniquement pour DOM/DOW) Utilisé pour éviter les conflits

Les implémentations cron modernes (comme Vixie cron et ses dérivés) prennent en charge des règles de syntaxe plus riches. D'après la documentation de référence Cron d'IBM[4] et le wiki du projet Cronie[3], les symboles suivants sont largement pris en charge :

Symbole Description Exemple de la documentation officielle
L Dernier jour (pris en charge par certaines implémentations) 0 0 L * * = exécution le dernier jour de chaque mois[5]
W Jour ouvré le plus proche (par ex. 15W = jour ouvré le plus proche du 15) Voir la documentation Quartz Scheduler[6] (courant dans l'écosystème Java)

III. Origine des alias prédéfinis (@daily, etc.)

@daily, @weekly et les alias similaires viennent de l'implémentation cron de Paul Vixie (Vixie cron, publiée en 1987)[7] et sont aujourd'hui des fonctionnalités par défaut des distributions Linux modernes (comme Debian ou Red Hat). D'après le manuel cron de Debian[8] :

# Equivalent to 0 0 * * *
@daily /path/to/script

IV. Différences courantes entre implémentations et points d'attention

Les différentes implémentations de cron présentent de subtiles variations : il faut se référer à leur documentation respective.

Implémentation Caractéristiques Lien vers la ressource officielle
Cronie Cron par défaut de Red Hat, prend en charge les raccourcis @ Cronie GitHub
systemd Remplace cron par des unités .timer (recommandé pour les nouveaux systèmes) Manuel systemd.timer
fcron Prend en charge une syntaxe plus complexe (par ex. @yearly) Site fcron

V. Outils de validation recommandés et références autorisées

  1. Page de manuel Crontab Exécutez man 5 crontab dans un terminal pour la syntaxe complète : la référence locale la plus directe et la plus fiable.

  2. Générateurs d'expressions Cron

  3. Documentation de projets open source


VI. Résumé

En combinant les normes POSIX, les pages de manuel Linux et la documentation des principales implémentations (comme Cronie), on peut comprendre précisément la logique des expressions cron. Pour les usages avancés (comme L et W), attention à la compatibilité des implémentations : privilégiez les ressources officielles.


Références

[1] Norme POSIX : Définition de Cron
[2] Page de manuel Linux man 5 crontab
[3] Documentation officielle de Cronie : Wiki GitHub
[4] Référence Cron d'IBM : Explication du format Cron
[5] Syntaxe Cron de Quartz : Documentation Quartz Scheduler
[6] Histoire de Vixie cron : Wiki Vixie cron
[7] Manuel cron de Debian : Debian CronHowto
[8] Manuel systemd.timer : Documentation officielle systemd

Questions fréquentes (FAQ)

Qu'est-ce qu'une expression Cron ?

Une expression Cron est une chaîne composée de 5 ou 7 champs séparés par des espaces, utilisée pour représenter une planification sur les systèmes de type Unix. Elle permet de programmer des tâches (sauvegardes, scripts, etc.) pour qu'elles s'exécutent automatiquement à des moments ou à des intervalles précis.

Quelle est la différence entre le mode standard et le mode étendu ?

Le mode standard utilise 5 champs (minute, heure, jour du mois, mois, jour de la semaine) et correspond au format standard des tâches cron Linux/Unix. Le mode étendu utilise 7 champs, en ajoutant les secondes au début et les années à la fin. Il est souvent employé par les planificateurs applicatifs modernes comme Quartz (Java) ou Spring.

Que signifie le symbole « ? » dans Cron ?

Le symbole « ? » signifie « aucune valeur spécifique ». Il ne s'utilise que dans les champs « jour du mois » et « jour de la semaine ». Il est utile lorsque vous devez préciser une valeur dans l'un de ces deux champs sans vous soucier de l'autre. Par exemple, pour qu'une tâche s'exécute le 10 du mois quel que soit le jour de la semaine, vous mettez « 10 » dans le champ jour du mois et « ? » dans le champ jour de la semaine.

Puis-je générer une expression Cron à partir d'une expression existante ?

Oui ! Utilisez la fonction « Analyse inverse ». Collez simplement votre expression Cron existante dans le champ de saisie et cliquez sur « Analyser l'expression ». Le constructeur visuel se met automatiquement à jour pour refléter les réglages de votre expression.