Configurer des tâches planifiées

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à configurer des tâches planifiées sur Linux. Vous allez explorer deux outils puissants : la commande watch pour exécuter des commandes à intervalles courts de manière répétée, et l'utilitaire crontab pour planifier des tâches à des moments spécifiques. Ces compétences sont essentielles pour les administrateurs système et toute personne qui a besoin d'automatiser des tâches récurrentes sur un système Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/tail("File End Display") linux/InputandOutputRedirectionGroup -.-> linux/redirect("I/O Redirecting") linux/SystemInformationandMonitoringGroup -.-> linux/watch("Command Repeating") linux/SystemInformationandMonitoringGroup -.-> linux/crontab("Job Scheduling") linux/SystemInformationandMonitoringGroup -.-> linux/date("Date/Time Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") linux/VersionControlandTextEditorsGroup -.-> linux/vim("Text Editing") subgraph Lab Skills linux/cat -.-> lab-47{{"Configurer des tâches planifiées"}} linux/tail -.-> lab-47{{"Configurer des tâches planifiées"}} linux/redirect -.-> lab-47{{"Configurer des tâches planifiées"}} linux/watch -.-> lab-47{{"Configurer des tâches planifiées"}} linux/crontab -.-> lab-47{{"Configurer des tâches planifiées"}} linux/date -.-> lab-47{{"Configurer des tâches planifiées"}} linux/service -.-> lab-47{{"Configurer des tâches planifiées"}} linux/apt -.-> lab-47{{"Configurer des tâches planifiées"}} linux/vim -.-> lab-47{{"Configurer des tâches planifiées"}} end

Utilisez la commande watch

La commande watch vous permet d'exécuter une commande de manière répétée et d'afficher sa sortie en temps réel. Cela est utile pour surveiller les modifications ou exécuter une commande à intervalles courts réguliers.

  1. Ouvrez votre terminal. Vous devriez être dans le répertoire /home/labex/project. Si vous n'êtes pas sûr, vous pouvez toujours vérifier votre répertoire actuel avec la commande pwd.

  2. Nous allons utiliser watch pour afficher la date et l'heure actuelles toutes les 5 secondes. Entrez la commande suivante :

    watch -n 5 date

Voici ce que fait cette commande :

  • watch est la commande que nous utilisons pour répéter une autre commande.
  • -n 5 est une option qui indique à watch d'attendre 5 secondes entre chaque exécution. Si vous l'omettez, watch utilisera un intervalle par défaut de 2 secondes.
  • date est la commande que watch exécutera de manière répétée. Elle affiche la date et l'heure actuelles.
  1. Après avoir entré la commande, vous devriez voir un affichage plein écran qui se met à jour toutes les 5 secondes. Cela ressemblera à ceci :
Exemple de sortie de la commande watch

La première ligne affiche la commande en cours d'exécution et la fréquence de mise à jour. Le reste de l'écran affiche la sortie de la commande date.

  1. Pour quitter la commande watch, appuyez sur Ctrl+C. Cette combinaison de touches est couramment utilisée sous Linux pour terminer une commande en cours d'exécution.

    Si vous ne stoppez pas la commande watch, elle continuera à s'exécuter indéfiniment, ce qui pourrait vous empêcher d'entrer de nouvelles commandes dans votre terminal.

Installer Crontab

Avant de pouvoir utiliser crontab pour planifier des tâches, nous devons nous assurer qu'il est installé sur notre système. La plupart des distributions Linux sont livrées avec crontab préinstallé, mais il est recommandé de vérifier et de l'installer si nécessaire.

  1. Tout d'abord, vérifions si crontab est déjà installé. Nous pouvons le faire en essayant d'exécuter la commande crontab :

    crontab -l

    Si crontab est installé, vous verrez soit une liste de vos tâches cron actuelles, soit un message indiquant "no crontab for labex".

  2. Si vous voyez un message d'erreur indiquant que la commande n'est pas trouvée, nous devons installer crontab. Sur les systèmes basés sur Ubuntu ou Debian, nous pouvons l'installer en utilisant les commandes suivantes :

    sudo apt update
    sudo apt install cron

    Vous serez invité à entrer votre mot de passe. Tapez-le (notez que vous ne verrez aucun caractère lors de la saisie pour des raisons de sécurité) puis appuyez sur Entrée.

  3. Après l'installation, démarrez le service cron :

    sudo service cron start

    Cette commande démarre immédiatement le service cron.

  4. Maintenant, vérifiez que cron est installé et en cours d'exécution :

    sudo service cron status

    Vous devriez voir une sortie indiquant que le service cron est en cours d'exécution.

Introduction à Crontab

Maintenant que nous avons installé crontab, explorons comment l'utiliser. Crontab est utilisé pour planifier des tâches à des moments spécifiques, même lorsque vous n'êtes pas connecté.

  1. Tout d'abord, visualisons vos entrées crontab actuelles (le cas échéant). Utilisez la commande suivante :

    crontab -l

    L'option -l signifie "list" (lister). Cette commande affiche toutes les tâches planifiées dans votre crontab.

    Si vous n'avez pas encore configuré de tâches cron, vous verrez un message indiquant "no crontab for labex". C'est normal pour un nouvel utilisateur.

  2. Maintenant, ouvrons le crontab pour le modifier. Utilisez cette commande :

    crontab -e

    L'option -e signifie "edit" (éditer). Cette commande ouvre votre fichier crontab dans un éditeur de texte.

    Si c'est la première fois que vous utilisez crontab, vous pouvez être invité à choisir un éditeur. Vous verrez une liste de numéros correspondant à différents éditeurs. Pour les débutants, nano (généralement l'option 1) est un bon choix car il est plus simple à utiliser. Tapez le numéro correspondant à nano puis appuyez sur Entrée.

Sélection d'un éditeur

Si vous n'êtes pas invité à choisir un éditeur, ne vous inquiétez pas. Cela signifie qu'un éditeur par défaut a déjà été configuré pour vous.

  1. Une fois l'éditeur ouvert, vous verrez un fichier vide (ou toute tâche cron existante si vous en aviez). N'ajoutez rien pour l'instant ; nous le ferons à une étape ultérieure. Pour le moment, familiarisez-vous simplement avec l'éditeur.

    Si vous utilisez nano, vous verrez quelques commandes d'aide en bas de l'écran. Le symbole ^ représente la touche Ctrl. Donc ^X signifie "Ctrl+X", qui est utilisé pour quitter nano.

  2. Quittez l'éditeur sans apporter de modifications. Dans nano, vous pouvez le faire en appuyant sur Ctrl+X. Si vous êtes invité à enregistrer les modifications, appuyez sur 'N' pour Non.

Comprendre la syntaxe de Crontab

Avant d'ajouter une tâche cron, il est essentiel de comprendre la syntaxe. Crontab utilise un format spécifique pour déterminer quand une tâche doit être exécutée.

  1. Le format de base d'une tâche cron est :

    * * * * * command_to_execute

    Chaque astérisque représente une unité de temps spécifique, de gauche à droite :

    1. Minute (0-59)
    2. Heure (0-23)
    3. Jour du mois (1-31)
    4. Mois (1-12)
    5. Jour de la semaine (0-7, où 0 et 7 représentent tous les deux dimanche)
  2. Voici quelques exemples pour vous aider à comprendre :

    • 30 2 * * * signifie "À 2h30 du matin, tous les jours"
    • 0 9 * * 1-5 signifie "À 9h00 du matin, du lundi au vendredi"
    • */15 * * * * signifie "Toutes les 15 minutes"
  3. Vous pouvez utiliser les caractères spéciaux suivants :

    • * : n'importe quelle valeur
    • , : séparateur de liste de valeurs
    • - : plage de valeurs
    • / : valeurs d'incrément
  4. Décortiquons un exemple plus complexe :
    15,45 9-17 * * 1-5 /path/to/script.sh
    Cela signifie : "Exécutez /path/to/script.sh à 15 et 45 minutes passé chaque heure de 9h00 à 17h00, du lundi au vendredi"

Comprendre cette syntaxe est essentiel pour créer des tâches cron efficaces. Prenez le temps de réfléchir à la façon dont vous pourriez planifier différentes tâches en utilisant ce format.

Ajouter une tâche cron

Maintenant que nous comprenons la syntaxe, ajoutons une simple tâche cron qui écrit la date actuelle dans un fichier toutes les minutes.

  1. Ouvrez votre crontab pour l'éditer :

    crontab -e
  2. Une fois l'éditeur ouvert, ajoutez la ligne suivante à votre crontab :

    * * * * * date >> /home/labex/project/date_log.txt
Capture d'écran de l'éditeur de tâches cron

Décortiquons cela :

  • Les cinq astérisques * * * * * signifient "toutes les minutes de chaque heure de chaque jour de chaque mois et de chaque jour de la semaine".
  • date est la commande que nous exécutons.
  • >> est utilisé pour ajouter la sortie à un fichier (au lieu de l'écraser).
  • /home/labex/project/date_log.txt est le fichier où nous stockons la sortie.
  1. Enregistrez et quittez l'éditeur. Si vous utilisez nano :

    • Appuyez sur Ctrl+X pour quitter.
    • Appuyez sur Y pour confirmer que vous souhaitez enregistrer les modifications.
    • Appuyez sur Enter pour confirmer le nom du fichier.
  2. Après avoir quitté, vous devriez voir un message indiquant "crontab: installing new crontab". Cela confirme que vos modifications ont été enregistrées.

Surveiller votre tâche cron

Maintenant que nous avons configuré une tâche cron, vérifions si elle fonctionne correctement.

  1. Tout d'abord, nous devons attendre au moins une minute après avoir ajouté la tâche cron. En effet, les tâches cron s'exécutent à chaque minute, il peut donc prendre jusqu'à une minute pour que votre tâche s'exécute pour la première fois.

  2. Après avoir attendu, utilisez la commande cat pour afficher le contenu du fichier journal :

    cat /home/labex/project/date_log.txt

    La commande cat affiche le contenu d'un fichier directement dans le terminal.

  3. Vous devriez voir au moins une ligne avec une date et une heure. Cela ressemblera à ceci :

    Sat Aug  5 10:15:01 UTC 2023

    Si vous ne voyez rien, attendez une autre minute et réessayez. Parfois, il peut prendre un moment pour que la tâche cron commence à s'exécuter.

  4. Pour voir la tâche cron en action, vous pouvez utiliser la commande watch que nous avons apprise précédemment pour surveiller le fichier en temps réel :

    watch -n 60 cat /home/labex/project/date_log.txt

    Cela se mettra à jour toutes les 60 secondes, vous montrant les nouvelles entrées au fur et à mesure qu'elles sont ajoutées.

  5. Laissez cela s'exécuter pendant quelques minutes. Vous devriez voir une nouvelle ligne ajoutée chaque minute.

  6. Lorsque vous avez terminé d'observer, appuyez sur Ctrl+C pour quitter la commande watch.

Résumé

Félicitations! Vous avez réussi le laboratoire "Set Up Scheduled Tasks" (Configurer des tâches planifiées). Vous avez appris à :

  1. Utiliser la commande watch pour exécuter des commandes à intervalles courts de manière répétée.
  2. Installer et configurer crontab sur votre système.
  3. Afficher et modifier votre crontab en utilisant crontab -l et crontab -e.
  4. Comprendre la syntaxe de crontab pour planifier des tâches.
  5. Créer une simple tâche cron qui s'exécute toutes les minutes.
  6. Surveiller la sortie de votre tâche cron.

Ces compétences sont fondamentales pour automatiser des tâches et surveiller des systèmes dans des environnements Linux. Au fur et à mesure de votre progression dans le monde Linux, vous trouverez de nombreuses autres utilisations pour les tâches planifiées dans l'administration système et l'automatisation.

N'oubliez pas que, bien que nous ayons utilisé un exemple simple d'enregistrement de la date, vous pouvez utiliser les tâches cron pour des tâches plus complexes telles que la sauvegarde de données, la mise à jour du logiciel ou l'exécution de scripts de maintenance système. Soyez toujours prudent lors de la configuration de tâches cron, surtout si elles impliquent des opérations critiques pour le système.