GNU/Linux >> Tutoriels Linux >  >> Linux

Comment planifier des tâches avec Cron sous Linux

Vous constaterez que de nombreuses tâches doivent être effectuées régulièrement sur votre système Linux. Par exemple, vous devrez peut-être mettre à jour une base de données ou sauvegarder les données des utilisateurs dans le répertoire /home/. Bien que vous puissiez exécuter ces tâches manuellement, il serait plus efficace (et plus fiable) de configurer le système Linux pour qu'il les exécute automatiquement pour vous.

Une option pour ce faire est d'utiliser cron. Le démon cron (/usr/sbin/cron) vous permet de planifier des tâches qui seront exécutées pour vous selon un horaire régulier.

Syntaxe du fichier crontab

Le démon cron est installé et activé par défaut sur les systèmes Linux. Une fois par minute, il vérifie si des tâches ont été définies pour l'heure actuelle. Le démon cron utilise un fichier appelé crontab qui contient une liste de travaux et quand ils doivent être exécutés. Un fichier crontab existe pour l'ensemble du système Linux. Chaque utilisateur du système peut également définir son propre fichier crontab.

Chaque ligne d'un fichier crontab définit une seule tâche cron. Les cinq premiers champs (séparés par des espaces blancs—espaces ou tabulations) définissent quand
la tâche cron doit être exécutée. Ils utilisent la syntaxe suivante :

Numéro de champ Libellé du champ Plage
1 Minutes 0-59
2 Heures 0-23
3 Jour du mois 1-31
4 Mois 1-12
5 Jour de la semaine 0-7

Dans un fichier crontab utilisateur, les champs suivants (champ six et plus) spécifient la commande et son option, le cas échéant, à exécuter. Dans un fichier crontab système, le sixième champ spécifie l'utilisateur à utiliser pour exécuter la commande dans les champs restants (champ sept et plus).

Le démon cron peut exécuter n'importe quelle commande ou script shell. Cependant, aucune interaction de l'utilisateur n'est disponible lorsque la commande ou le script shell est exécuté.

Voici les instructions pour configurer ces champs :

  • Si vous souhaitez qu'une tâche s'exécute toutes les minutes, toutes les heures, tous les jours ou tous les mois, saisissez un astérisque (*) dans le champ correspondant.
  • Vous pouvez inclure plusieurs entrées dans un champ d'une liste séparées par des virgules.
  • Vous pouvez spécifier une plage avec des valeurs de début et de fin séparées par un trait d'union.
  • Vous pouvez configurer les pas de temps avec /n (où n représente la taille du pas).
  • Vous pouvez spécifier les mois et les jours de la semaine en utilisant les trois premières lettres de leur nom (par exemple, MON, TUE, JAN, FEB). Les lettres ne sont pas sensibles à la casse. Cependant, lorsque vous utilisez des lettres, vous ne pouvez pas utiliser de plages ou de listes.
  • Les nombres représentant les jours de la semaine commencent à 0 pour le dimanche et parcourent toute la semaine consécutivement, 7 représentant à nouveau le dimanche. Par exemple, 3 est mercredi et 6 est samedi.

Définir les tâches utilisateur

Les utilisateurs créent et gèrent leurs propres fichiers crontab à l'aide de la commande crontab. Les options suivantes peuvent être utilisées avec la commande crontab :

Option Description
crontab -e Crée ou édite des travaux. L'éditeur vi est utilisé.
fichier crontab Remplace tout fichier crontab existant pour l'utilisateur actuel par le fichier spécifié, en supposant que le fichier contient une liste de tâches utilisant la syntaxe correcte.
crontab -l Affiche les travaux en cours.
crontab -r Supprime toutes les tâches.

Par exemple, supposons que vous souhaitiez définir une tâche cron qui copie le contenu du répertoire personnel de votre utilisateur sur un lecteur USB externe monté dans /media/USB tous les soirs à 17h05. Vous auriez besoin de faire ce qui suit :

1. Ouvrez une session de terminal.

2. À l'invite du shell, entrez "crontab -e".

# crontab -e

Un fichier crontab vide est créé pour votre utilisateur si c'est la première fois que vous définissez une tâche cron.

3. Appuyez sur la touche I, puis saisissez ce qui suit :

5 17 * * * cp ~/* /media/USB

4. Appuyez sur Échap, puis saisissez « :wq ! ».

5. Vous pouvez spécifier quels utilisateurs sont autorisés à créer des tâches cron et lesquels ne le sont pas en créant les deux fichiers suivants :

  1. /etc/cron.allow  :Les utilisateurs répertoriés dans ce fichier peuvent créer des tâches cron.
  2. /etc/cron.deny  :Les utilisateurs qui ne sont pas répertoriés dans ce fichier peuvent créer des tâches cron.

Si le fichier /etc/cron.allow existe, c'est le seul fichier évalué; /etc/cron.deny sera ignoré dans cette situation. Si aucun de ces fichiers n'existe, seul l'utilisateur root est autorisé à définir les tâches cron de l'utilisateur.


Linux
  1. Comment utiliser cron sous Linux

  2. Comment planifier des tâches Cron avec Crontab

  3. Comment planifier des travaux avec la commande 'at' sous Linux

  4. Comment écrire un fichier avec C sous Linux ?

  5. Récupérer les tâches cron supprimées accidentellement avec crontab -r

Comment afficher ou répertorier les tâches Cron sous Linux

Cron Jobs et Crontab sur Linux expliqués

Comprendre Crontab sous Linux avec des exemples

Planifier des travaux sous Linux avec la commande 'at'

Comment gérer les noms de fichiers avec des espaces sous Linux

10 exemples cron utiles pour planifier des tâches sous Linux