Aide-mémoire Syntaxe Cron : Référence Complète
Cron est un planificateur de tâches basé sur le temps dans les systèmes d'exploitation de type Unix. Que vous soyez un développeur configurant une tâche en arrière-plan ou un ingénieur DevOps gérant la maintenance du serveur, comprendre la Syntaxe des Expressions Cron est essentiel.
Ce guide fournit une décomposition complète des champs cron, des caractères spéciaux et des exemples pratiques pour vous aider à planifier des tâches en toute confiance.
1. Format des Expressions Cron
Une expression cron standard se compose de cinq champs (ou six dans certains systèmes comme Quartz ou Jenkins).
┌───────────── minute (0 - 59)
│ ┌───────────── heure (0 - 23)
│ │ ┌───────────── jour du mois (1 - 31)
│ │ │ ┌───────────── mois (1 - 12)
│ │ │ │ ┌───────────── jour de la semaine (0 - 6) (Dimanche à Samedi)
│ │ │ │ │
* * * * *
2. Référence des Caractères Spéciaux
| Caractère | Description | Exemple |
|---|---|---|
* |
Toute valeur : Correspond à chaque valeur possible pour ce champ. | * * * * * (Chaque minute) |
, |
Séparateur de liste : Spécifie une liste de valeurs. | 0,15,30,45 (Toutes les 15 minutes) |
- |
Plage de valeurs : Spécifie une plage de X à Y. | 9-17 (De 9h à 17h) |
/ |
Valeurs de pas : Spécifie des incréments. | */15 (Toutes les 15 minutes) |
L |
Dernier (Last) : Spécifie le dernier jour du mois ou de la semaine. | 5L (Dernier vendredi du mois) |
W |
Jour ouvrable (Weekday) : Le jour ouvrable le plus proche (Lun-Ven) d'une date. | 15W (Jour ouvrable le plus proche du 15) |
# |
Nième jour du mois : Spécifie la nième occurrence d'un jour de la semaine. | 6#3 (Troisième samedi du mois) |
3. Exemples Cron Courants
| Programmation | Expression | Description |
|---|---|---|
| Chaque Minute | * * * * * |
Exécute la tâche chaque minute. |
| Chaque Heure | 0 * * * * |
Exécute au début de chaque heure. |
| Chaque jour à minuit | 0 0 * * * |
Exécute une fois par jour à 00h00. |
| Chaque dimanche à 4h | 0 4 * * 0 |
Idéal pour les sauvegardes hebdomadaires. |
| Toutes les 15 minutes | */15 * * * * |
Exécute à :00, :15, :30, et :45. |
| Heures de bureau (9h-17h) | 0 9-17 * * 1-5 |
Exécute chaque heure les jours ouvrables. |
4. crontab -e vs crontab -l
La commande crontab est utilisée pour gérer vos tâches cron personnelles.
crontab -e: Ouvre votre fichier crontab personnel pour modification. Si c'est la première fois, on vous demandera peut-être de choisir un éditeur (comme nano ou vim).crontab -l: Liste toutes les tâches cron actives pour l'utilisateur actuel.crontab -r: Supprime toutes vos tâches cron actuelles. À utiliser avec prudence !
5. Visualiser votre Planification
Lire une expression cron brute peut être difficile. C'est pourquoi nous avons créé le Visualiseur de Planification Cron.
Notre outil vous aide à :
- Analyser les Expressions : Traduction instantanée de
0 4 * * 0en "À 04h00 le dimanche". - Prochaines exécutions : Voir les 5 prochaines exécutions planifiées basées sur votre fuseau horaire.
- Descriptions lisibles : Plus besoin de deviner ce que signifie
*/5 9-17 * * 1-5.
FAQ : Dépannage des Tâches Cron
Q : Pourquoi ma tâche cron ne s'exécute-t-elle pas ?
R : La raison la plus courante est liée aux variables d'environnement. Cron s'exécute avec un environnement shell minimal. Utilisez toujours des chemins absolus pour les commandes (ex: /usr/bin/python3 au lieu de python3) et enregistrez votre sortie dans un fichier : * * * * * /chemin/vers/script.sh >> /var/log/cron.log 2>&1.
Q : Quelle est l'alternative avec systemd timer ?
R : Les distributions Linux modernes (comme Ubuntu, Fedora) recommandent les timers systemd plutôt que cron. Ils offrent une meilleure journalisation via journalctl, la gestion des dépendances et une planification plus flexible, bien que la configuration soit plus complexe.
Q : Comment gérer les fuseaux horaires dans cron ?
R : Par défaut, cron s'exécute dans le fuseau horaire local du système (généralement UTC sur les serveurs). Certains systèmes permettent de définir CRON_TZ=Europe/Paris en haut du fichier crontab, mais la méthode la plus fiable consiste à synchroniser l'horloge de votre serveur sur le fuseau horaire souhaité.
Sur Tool3M
- Analyseur et Visualiseur Cron : Validez et visualisez vos expressions cron instantanément.
- Formateur JSON : Formatez les fichiers de configuration qui pourraient contenir des chaînes cron.
- Convertisseur de Timestamp : Convertissez les temps d'exécution entre différents formats et fuseaux horaires.