GNU/Linux >> Tutoriels Linux >  >> Linux

Planification des tâches avec la commande Linux cron

Au début de mon voyage Linux, j'en suis venu à apprécier les nombreux utilitaires de ligne de commande du système d'exploitation et la façon dont ils rationalisaient les tâches régulières. Par exemple, la sauvegarde d'applications sur mon serveur Windows nécessitait fréquemment des packages logiciels complémentaires coûteux. En revanche, le tar rend la sauvegarde de Linux relativement facile, et elle est également puissante et fiable.

Lors de la sauvegarde de notre système de messagerie du district scolaire, cependant, j'ai été confronté à un défi différent. Les sauvegardes ne pouvaient pas avoir lieu pendant la journée de travail ou en début de soirée car des personnes utilisaient le système. La sauvegarde devait avoir lieu après minuit et elle devait être fiable. J'étais habitué au Gestionnaire des tâches de Windows, mais qu'allais-je utiliser sous Linux ? C'est là que j'ai découvert cron.

Planifier des tâches sous Linux avec cron

Cron est un démon utilisé pour exécuter automatiquement des commandes planifiées. Apprendre à utiliser cron a nécessité quelques lectures et expérimentations, mais bientôt j'ai utilisé cron pour arrêter notre serveur de messagerie, sauvegarder les données dans un fichier tar compressé, puis redémarrer le service de messagerie à 3 heures du matin.

Les commandes d'une tâche cron sont stockées dans le fichier crontab sur un système Linux, qui se trouve généralement dans /etc/crontab. Affichez le contenu de votre fichier crontab avec $ crontab -l .

Editez le fichier crontab avec $ crontab -e .

Certains systèmes utilisent par défaut l'éditeur Vi pour l'édition cron. Vous pouvez remplacer ce paramètre à l'aide de variables d'environnement :

$ EDITOR=nano crontab -e

Cela vous permet d'utiliser l'éditeur nano pour éditer votre crontab personnelle (si vous n'en avez pas encore, une est créée automatiquement pour vous).

Toutes les commandes crontab ont des paramètres indiqués par un astérisque jusqu'à ce que vous insériez une valeur entière. Le premier représente les minutes, puis les heures, le jour du mois, le mois de l'année et enfin le jour de la semaine.

Les commentaires sont précédés d'un dièse. Cron ignore les commentaires, ils sont donc un excellent moyen de vous laisser des notes sur ce que fait une commande et pourquoi elle est importante.

Un exemple de tâche cron

Supposons que vous souhaitiez analyser votre répertoire personnel à la recherche de virus et de logiciels malveillants avec clamscan chaque semaine le lundi à 10h. Vous souhaitez également sauvegarder votre répertoire personnel chaque semaine le mardi à 9h00. L'utilisation des fichiers cron et crontab garantit que la maintenance de votre système a lieu chaque semaine, que vous vous souveniez ou non d'exécuter ces utilitaires.

Modifiez votre fichier crontab pour inclure les éléments suivants, en utilisant votre propre nom d'utilisateur au lieu de "don" (mon nom d'utilisateur) :

# Scan my home directory for viruses
0 10 * * 1 clamscan -ir /home/don
# Backup my home directory
0 9 * * 2 tar -zcf /var/backups/home.tgz /home/don

Si vous utilisez l'éditeur nano, enregistrez votre travail avec Ctrl+O pour écrire le fichier et Ctrl+X pour quitter l'éditeur. Après avoir modifié le fichier, utilisez crontab -l pour lister le contenu de votre fichier cron afin de vous assurer qu'il a été correctement enregistré.

Vous pouvez créer des tâches crontab pour n'importe quelle tâche requise sur votre système. Cela tire pleinement parti du démon cron.

Planification à partir de la ligne de commande Linux

Ce n'est un secret pour personne que la partie la plus difficile de cron est de trouver les bonnes valeurs pour ces astérisques principaux. Il existe des sites Web, comme crontab.guru, qui traduisent dynamiquement le temps cron en traductions lisibles par l'homme, et Opensource.com a une feuille de triche cron que vous pouvez télécharger pour vous aider à rester clair.

De plus, la plupart des systèmes cron modernes proposent des raccourcis vers des valeurs courantes, notamment :

  • @hourly :Exécuter une fois par heure (0 * * * *)
  • @daily :Exécuter une fois par jour (0 0 * * *)
  • @weekly :Exécuter une fois par semaine (0 0 * * 0)
  • @monthly :Exécuter une fois par mois (0 0 1 * *)
  • @reboot  :Exécuter une fois après le redémarrage

Il existe également des alternatives à cron, y compris anacron pour les travaux que vous souhaitez exécuter régulièrement mais pas selon un calendrier spécifique, et le at commande pour les travaux ponctuels.

Cron est un système de planification de tâches utile, et il est aussi facile à utiliser que l'édition de texte. Essayez-le !


Linux
  1. Diagnostiquer les problèmes de connectivité avec la commande Linux ping

  2. Regardez les commandes et les tâches avec la commande Linux watch

  3. Remplacez les guillemets intelligents par la commande Linux sed

  4. Maîtrisez la commande Linux ls

  5. La commande locate sous Linux

Commande Linux ip avec exemples

15 Commande Linux ps avec exemples

Comment automatiser des tâches avec des tâches cron sous Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Planification avec cron &At

La commande timer sous Linux