GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que Crontab et comment automatiser des tâches sous Linux avec Crontab

​Cron est un utilitaire qui gère les processus d'arrière-plan ou les démons de temps en temps (par exemple chaque minute, jour, semaine ou mois). Cron fonctionne comme un planificateur, par exemple, il peut télécharger des fichiers depuis Internet ou télécharger des e-mails à intervalles réguliers, vous pouvez également l'utiliser pour des tâches plus complexes comme l'installation de mises à jour. À l'origine, cron a été créé pour UNIX par Ken Thompson, mais vous pouvez maintenant l'utiliser dans tous les systèmes de type UNIX, même Linux ! UNIX a un autre utilitaire pour la planification des tâches appelé "at" mais cron est bien meilleur. ​Il y a deux façons d'utiliser cron, la première est via les répertoires cron situés dans /etc si vous ouvrez un terminal et tapez la commande suivante :$ ls /etc/cron* Vous obtiendrez la sortie suivante :

​Maintenant, vous pouvez voir les répertoires suivants dans l'image :cron. quotidien, cron. hourly, cron.monthly, cron.weekly et cron.yearly. Ces répertoires stockent les scripts qui doivent être exécutés par cron, selon le nom de chaque répertoire est la fréquence de l'exécution. Par exemple, les scripts stockés dans cron.hourly seront exécutés toutes les heures.

Maintenant, je vais écrire un script simple pour faire une sauvegarde d'un répertoire, et je vais le mettre sur le cron. répertoire horaire pour exécuter le script toutes les heures. Une chose importante que vous devez considérer est de fournir les autorisations d'exécution au script, car si vous ne le faites pas, cron n'exécutera pas le fichier.

L'exemple du processus pour ajouter un script aux tâches cron en utilisant les répertoires cron globaux :

J'ai un répertoire et je souhaite créer et sauvegarder automatiquement toutes les heures :

​J'écris un script pour faire la sauvegarde, j'ai utilisé nano mais vous pouvez utiliser votre éditeur préféré :

Je teste le script :

Je copie le script dans /etc/cron.hourly :

Je donne les permissions d'exécution au script :

​Tous les scripts doivent commencer par la ligne #!/bin/sh car elle indique le shell à utiliser. Utiliser cron via les répertoires /etc/cron.* n'est pas très utile, donc je vais vous expliquer la deuxième manière d'utiliser crontab.

Si vous vous souvenez de la sortie lorsque j'ai répertorié le contenu de /etc/cron*, vous verrez le fichier suivant :/etc/crontab

Vous pouvez programmer des tâches dans le fichier crontab, mais vous devez d'abord apprendre ce qui suit :

​Si vous analysez le contenu du fichier crontab, vous pouvez identifier 7 champs dans les lignes après "# run-parts", je veux dire ce qui suit (la première ligne après "# run parts") :

​Champ1 Champ2 ​Champ3 Champ4 Champ5 Champ6 Champ7
01 * * * * racine ​sympa …

Les cinq premiers champs indiquent des valeurs de temps, le sixième champ indique l'utilisateur et le septième indique la commande à exécuter, ce dernier peut être un script ou une commande (uname, ls, apt-get, etc). Les champs de temps sont les suivants :

​minute ​heure ​jour du mois ​mois ​jour de la semaine
01 * * * *

​La valeur acceptée pour chaque champ est :

​minute ​00 – 59
​heure ​00 – 23
​jour du mois ​1 – 31
​mois ​1 – 12
​jour de la semaine ​1 – 7 (lundi :1, dimanche :7)

Si la valeur d'un de ces champs est "*", cela signifie toutes les valeurs possibles pour le champ correspondant, par exemple, * * * * * root /root/script.shCette tâche sera exécutée par root toutes les minutes, tous les jours et tous les mois.

Crontab utilise des chaînes trop spéciales pour définir des plages de fréquence :

@reboot ​Une fois après le démarrage
​@annuel ​Une fois par an
​@annuellement ​Identique à @yearly
​@mensuel ​Une fois par mois
​@hebdomadaire ​Une fois par semaine
​@quotidien  Quotidien
​@minuit ​Identique à @daily
​@horaire ​Horaire

Il vous suffit de modifier les champs d'heure pour l'une des chaînes spéciales, puis de compléter le reste, par exemple, @annually root dist-upgrade. Cette tâche doit être exécutée automatiquement chaque année.

Maintenant, vous pouvez ajouter des tâches à crontab, vous pouvez également créer un répertoire .scripts dans votre /home et y stocker vos scripts, enfin, vous pouvez ajouter une entrée pour chaque script dans le fichier crontab.

Crontab peut gérer un fichier de tâches pour chaque utilisateur, vous pouvez tester si votre utilisateur a des tâches crontab en utilisant la commande suivante :

​Vous pouvez programmer des tâches dans un fichier, il vous suffit de le créer :

​Lorsque vous avez créé votre fichier crontab, vous devez le charger dans cron en tapant la commande :

$ crontab your_crontab ​

Cron est très puissant car après avoir chargé une nouvelle crontab, vous n'avez rien à faire, c'est tout, cron charge automatiquement les nouvelles tâches et les fichiers crontab. Le résultat de ma crontab est un script qui crée un fichier avec des dates générées toutes les minutes :

Scénario

Le fichier généré ​Les autres options pour crontab sont les suivantes :

Cron est le planificateur de tâches le plus puissant que je connaisse et il est excellent car ce n'est pas seulement pour Linux, c'est pour tous les systèmes de type UNIX. Si vous gérez un serveur, vous aimerez probablement cron, même si vous êtes un utilisateur commun, vous aimerez cron, avec cron vous pouvez tout planifier. Si vous voulez en savoir plus sur cron, vous devriez voir les pages de manuel :

$ man cron
$ man crontab 

Linux
  1. Comment utiliser cron sous Linux

  2. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  3. Flatpak sur Linux :qu'est-ce que c'est et comment installer des applications avec ?

  4. Automatisez les tâches système avec crontab sur CentOS 7

  5. Comment planifier des tâches Cron avec Crontab

Comment gérer facilement et en toute sécurité les tâches Cron sous Linux

Qu'est-ce que Git et comment installer Git sous Linux

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

Cron Jobs et Crontab sur Linux expliqués

Comprendre Crontab sous Linux avec des exemples

Comment planifier des tâches avec Cron sous Linux