Syntaxe Cron
Une ligne de cron se compose de 5 champs de temps suivis par la commande à exécuter :
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └─ Jour de la semaine (0-7, 0 ou 7 = dimanche)
│ │ │ └── Mois (1-12)
│ │ └── Jour du mois (1-31)
│ └── Heure (0-23)
└── Minute (0-59)
Exemples pratiques :
0 8 * * * → tous les jours à 08:00
30 13 * * * → tous les jours à 13:30
9,19,29,39,49,59 7-18 * * * → toutes les heures de 7h à 18h aux minutes 9,19,29,39,49,59
* * * * * → toutes les minutes, tous les jours
0 9 * * 1 → tous les lundis à 09:00
0 9 * * 1,3,5 → tous les lundis, mercredis et vendredis à 09:00
0 9 * * 0-6 → tous les jours de la semaine à 09:00
Les champs peuvent contenir :
- * → toutes les valeurs possibles
- 5,10,15 → valeurs spécifiques séparées par des virgules
- 1-5 → plage de valeurs
Exemple combiné :
# Exécuter le script backup.sh tous les lundis à 02:30
30 2 * * 1 /home/user/backup.sh
Différence entre /etc/crontab et les crons utilisateurs
/etc/crontab est le cron système. Chaque ligne comporte un champ supplémentaire pour le nom d'utilisateur :
# Cron système
Minute Heure Jour_du_mois Mois Jour_semaine Utilisateur Commande
0 5 * * * root /usr/local/bin/script.sh
Les crons utilisateurs (édités avec crontab -e) n’incluent pas le champ utilisateur :
# Cron utilisateur
Minute Heure Jour_du_mois Mois Jour_semaine Commande
0 5 * * * /home/user/script.sh
Créer ou éditer un cron sous Rocky Linux 9
-
Crons utilisateurs :
crontab -e -
Lister les crons utilisateurs :
crontab -l -
Supprimer tous les crons utilisateurs :
crontab -r -
Crons système :
Éditez le fichier
/etc/crontabou créez un fichier dans/etc/cron.d/:sudo nano /etc/crontab -
Répertoires de crons périodiques :
/etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/ -
Redémarrage du démon cron (si nécessaire) :
sudo systemctl restart crond
Pour rappel, l’ordre est toujours : Minute Heure Jour_du_mois Mois Jour_de_la_semaine [Utilisateur] Commande