Crontab (Tâches automatisées)
Le crontab sous Linux est un outil permettant de planifier et automatiser l'exécution de tâches à des moments spécifiques.
Il utilise le service cron, un démon qui exécute des commandes en arrière-plan à des heures définies.
Crontab est souvent utilisé pour des tâches répétitives comme les sauvegardes, les mises à jour, et l’envoi de notifications.
Structure et Syntaxe du Crontab
Pour configurer des tâches automatiques, chaque utilisateur peut avoir son propre fichier crontab, accessible via la commande crontab -e.
Chaque champ de la ligne représente un paramètre temporel :
Minute: de 0 à 59
Heure: de 0 à 23
Jour du mois: de 1 à 31
Mois: de 1 à 12
Jour de la semaine: de 0 (dimanche) à 7 (dimanche)
Le caractère * signifie "tous" (par exemple, toutes les minutes, heures, etc.). Les tâches peuvent être configurées pour s'exécuter à des moments précis en spécifiant les valeurs des champs.
Exemple de base
Cela exécute commande tous les lundis à 2h30 du matin.
Écrire et Modifier le Crontab
Pour créer ou modifier votre crontab, utilisez :
Pour afficher les tâches crontab de l’utilisateur actuel :
Pour supprimer les tâches crontab de l’utilisateur :
Exemples d’Utilisation
Exécuter une commande toutes les minutes:
* * * * * commandeExécuter une tâche tous les jours à 3h00 du matin:
0 3 * * * commandeExécuter un script tous les dimanches à minuit:
0 0 * * 0 /chemin/vers/script.shExécuter une tâche à des intervalles spécifiques (par exemple, toutes les 15 minutes):
*/15 * * * * commandeExécuter une tâche seulement pendant les heures de bureau (9h à 17h):
0 9-17 * * * commande
Utilisation des caractères spéciaux
Virgule (
,): Permet de spécifier plusieurs valeurs.0 8,12,16 * * * commandeExécute
commandeà 8h, 12h et 16h chaque jour.Tiret (
-): Définit une plage.0 9-17 * * * commandeExécute
commandechaque heure de 9h à 17h.Slash (
/): Définir un intervalle.*/10 * * * * commandeExécute
commandetoutes les 10 minutes.
Variables dans Crontab
Dans un crontab, on peut utiliser des variables comme PATH pour définir des chemins spécifiques et MAILTO pour envoyer un rapport d’exécution par e-mail.
Définir le chemin d'exécution:
PATH=/usr/local/bin:/usr/bin:/binEnvoyer le résultat de la tâche par e-mail:
MAILTO="votre_email@example.com"
Commandes spéciales dans le Crontab
@reboot: Exécute la tâche au démarrage du système.
@reboot /chemin/vers/script.sh@daily: Exécute la tâche une fois par jour (équivalent de
0 0 * * *).@daily /chemin/vers/script.sh@hourly: Exécute la tâche toutes les heures.
@hourly /chemin/vers/script.sh@weekly: Exécute la tâche chaque semaine (équivalent de
0 0 * * 0).@weekly /chemin/vers/script.sh@monthly: Exécute la tâche chaque mois.
@monthly /chemin/vers/script.sh
Exemple Complet
Voici un exemple de crontab avec plusieurs tâches :
Vérifier les Logs de Cron
Les tâches cron sont enregistrées dans les journaux système. Pour vérifier les logs :