420-1Q1-AA Help

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.

* * * * * commande

Chaque champ de la ligne représente un paramètre temporel :

  1. Minute: de 0 à 59

  2. Heure: de 0 à 23

  3. Jour du mois: de 1 à 31

  4. Mois: de 1 à 12

  5. 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

30 2 * * 1 commande

Cela exécute commande tous les lundis à 2h30 du matin.

Écrire et Modifier le Crontab

Pour créer ou modifier votre crontab, utilisez :

crontab -e

Pour afficher les tâches crontab de l’utilisateur actuel :

crontab -l

Pour supprimer les tâches crontab de l’utilisateur :

crontab -r

Exemples d’Utilisation

  1. Exécuter une commande toutes les minutes:

    * * * * * commande
  2. Exécuter une tâche tous les jours à 3h00 du matin:

    0 3 * * * commande
  3. Exécuter un script tous les dimanches à minuit:

    0 0 * * 0 /chemin/vers/script.sh
  4. Exécuter une tâche à des intervalles spécifiques (par exemple, toutes les 15 minutes):

    */15 * * * * commande
  5. Exé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 * * * commande

    Exécute commande à 8h, 12h et 16h chaque jour.

  • Tiret (-): Définit une plage.

    0 9-17 * * * commande

    Exécute commande chaque heure de 9h à 17h.

  • Slash (/): Définir un intervalle.

    */10 * * * * commande

    Exécute commande toutes 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:/bin
  • Envoyer le résultat de la tâche par e-mail:

    MAILTO="votre_email@example.com"

Commandes spéciales dans le Crontab

  1. @reboot: Exécute la tâche au démarrage du système.

    @reboot /chemin/vers/script.sh
  2. @daily: Exécute la tâche une fois par jour (équivalent de 0 0 * * *).

    @daily /chemin/vers/script.sh
  3. @hourly: Exécute la tâche toutes les heures.

    @hourly /chemin/vers/script.sh
  4. @weekly: Exécute la tâche chaque semaine (équivalent de 0 0 * * 0).

    @weekly /chemin/vers/script.sh
  5. @monthly: Exécute la tâche chaque mois.

    @monthly /chemin/vers/script.sh

Exemple Complet

Voici un exemple de crontab avec plusieurs tâches :

# Exécuter une sauvegarde tous les jours à 2h 0 2 * * * /chemin/vers/sauvegarde.sh # Nettoyer les fichiers temporaires tous les dimanches à 3h 0 3 * * 0 /chemin/vers/nettoyage.sh # Envoyer un e-mail de rapport quotidien MAILTO="votre_email@example.com" @daily /chemin/vers/rapport.sh

Vérifier les Logs de Cron

Les tâches cron sont enregistrées dans les journaux système. Pour vérifier les logs :

tail -f /var/log/syslog | grep CRON
Last modified: 18 November 2024