GNU/Linux >> Tutoriels Linux >  >> Linux

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

Si vous travaillez dans l'informatique, vous devrez peut-être planifier diverses tâches répétitives dans le cadre de vos processus d'automatisation.

Par exemple, vous pouvez planifier une tâche particulière pour qu'elle s'exécute périodiquement à des heures précises de la journée. Ceci est utile pour effectuer des sauvegardes quotidiennes, l'archivage mensuel des journaux, la suppression hebdomadaire de fichiers pour créer de l'espace, etc.

Et si vous utilisez Linux comme système d'exploitation, vous utiliserez ce qu'on appelle une tâche cron pour que cela se produise.

Qu'est-ce qu'un cron ?

Cron est un utilitaire de planification de tâches présent dans les systèmes de type Unix. Le démon crond active la fonctionnalité cron et s'exécute en arrière-plan. Le cron lit le crontab (tables cron) pour exécuter des scripts prédéfinis.

En utilisant une syntaxe spécifique, vous pouvez configurer une tâche cron pour planifier l'exécution automatique de scripts ou d'autres commandes.

Pour les utilisateurs individuels, le service cron vérifie le fichier suivant :/var/spool/cron /crontabs

Que sont les tâches cron sous Linux ?

Toute tâche que vous planifiez via crons est appelée une tâche cron. Les tâches Cron nous aident à automatiser nos tâches de routine, qu'elles soient horaires, quotidiennes, mensuelles ou annuelles.

Voyons maintenant comment fonctionnent les tâches cron.

Comment contrôler l'accès aux crons

Pour utiliser les tâches cron, un administrateur doit autoriser l'ajout de tâches cron pour les utilisateurs dans le fichier '/etc/cron.allow'.

Si vous obtenez une invite comme celle-ci, cela signifie que vous n'êtes pas autorisé à utiliser cron.

Pour permettre à John d'utiliser crons, incluez son nom dans '/etc/cron.allow'. Cela permettra à John de créer et de modifier des tâches cron.

Les utilisateurs peuvent également se voir refuser l'accès aux tâches cron en entrant leurs noms d'utilisateur dans le fichier '/etc/cron.d/cron.deny'.

Comment ajouter des tâches cron sous Linux

Tout d'abord, pour utiliser les tâches cron, vous devez vérifier l'état du service cron. Si cron n'est pas installé, vous pouvez facilement le télécharger via le gestionnaire de packages. Utilisez simplement ceci pour vérifier :

# Check cron service on Linux system
sudo systemctl status cron.service

Syntaxe de la tâche Cron

Les crontabs utilisent les indicateurs suivants pour ajouter et répertorier les tâches cron.

  • crontab -e  : modifie les entrées crontab pour ajouter, supprimer ou modifier des tâches cron.
  • crontab -l :liste toutes les tâches cron pour l'utilisateur actuel.
  • crontab -u username -l : lister les crons d'un autre utilisateur.
  • crontab -u username -e : modifier les crons d'un autre utilisateur.

Lorsque vous répertoriez les crons, vous verrez quelque chose comme ceci :

# Cron job example
* * * * * sh /path/to/script.sh

Dans l'exemple ci-dessus,

  • * * * * * représente les minute(s) heure(s) jour(s) mois(s) jour(s) de la semaine, respectivement.
Valeur Description
Procès-verbal 0-59 La commande serait exécutée à la minute spécifique.
Heures 0-23 La commande serait exécutée à l'heure précise.
Jours 1-31 Les commandes seraient exécutées ces jours-ci.
Mois 1-12 Le mois au cours duquel les tâches doivent être exécutées.
En semaine 0-6 Jours de la semaine où les commandes seraient exécutées. Ici, 0 c'est dimanche.
  • sh représente que le script est un script bash et doit être exécuté à partir de /bin/bash .
  • /path/to/script.sh spécifie le chemin d'accès au script.

Vous trouverez ci-dessous le résumé de la syntaxe de la tâche cron.

*   *   *   *   *  sh /path/to/script/script.sh
|   |   |   |   |              |
|   |   |   |   |      Command or Script to Execute        
|   |   |   |   |
|   |   |   |   |
|   |   |   |   |
|   |   |   | Day of the Week(0-6)
|   |   |   |
|   |   | Month of the Year(1-12)
|   |   |
|   | Day of the Month(1-31)  
|   |
| Hour(0-23)  
|
Min(0-59)

Exemples de tâches Cron

Vous trouverez ci-dessous quelques exemples de planification de tâches cron.

Planification Valeur planifiée
5 0 * 8 * A 00h05 en août.
5 4 * * 6 A 04h05 le dimanche.
0 22 * ​​* 1-5 À 22h00 tous les jours de la semaine du lundi au vendredi.

Ce n'est pas grave si vous ne parvenez pas à saisir tout cela d'un coup. Vous pouvez vous entraîner et générer des planifications cron avec le gourou crontab.

Comment configurer une tâche cron

Dans cette section, nous allons voir un exemple de planification d'un script simple avec une tâche cron.

  1. Créez un script appelé date-script.sh qui imprime la date et l'heure du système et l'ajoute à un fichier. Le script est illustré ci-dessous :

2. Rendez le script exécutable en lui attribuant les droits d'exécution.

chmod 775 date-script.sh

3. Ajoutez le script dans la crontab en utilisant crontab -e .

Ici, nous l'avons programmé pour qu'il s'exécute par minute.

4. Vérifiez la sortie du fichier date-out.txt . Selon le script, la date système doit être imprimée dans ce fichier toutes les minutes.

Comment dépanner les crons

Les crons sont vraiment utiles, mais ils ne fonctionnent pas toujours comme prévu. Heureusement, il existe des méthodes efficaces que vous pouvez utiliser pour les résoudre.

  1. Consultez le calendrier.

Tout d'abord, vous pouvez essayer de vérifier le calendrier défini pour le cron. Vous pouvez le faire avec la syntaxe que vous avez vue dans les sections ci-dessus.

2. Vérifiez les journaux cron.

Vous devez d'abord vérifier si le cron s'est exécuté à l'heure prévue ou non. Vous pouvez le vérifier à partir des journaux cron situés dans var/log/cron . Dans certaines distributions, les journaux peuvent être trouvés dans /var/log/syslog

S'il y a une entrée dans ces journaux au bon moment, cela signifie que le cron s'est exécuté selon le calendrier que vous avez défini.

Vous trouverez ci-dessous les journaux de notre exemple de tâche cron. Notez la première colonne qui affiche l'horodatage. Le chemin du script est également mentionné en fin de ligne.

3. Redirigez la sortie cron vers un fichier.

Vous pouvez rediriger la sortie d'un cron vers un fichier et vérifier si le fichier contient d'éventuelles erreurs.

# Redirect cron output to a file
* * * * * sh /path/to/script.sh &> log_file.log

Conclusion

L'automatisation des tâches, comme avec les tâches cron, réduit le travail répétitif que vous devez effectuer. Il permet également aux machines de se réparer automatiquement et de travailler 24 heures sur 24 sans intervention humaine.

L'automatisation sous Linux repose fortement sur les tâches cron, vous devez donc absolument apprendre les crons et les expérimenter.

Merci d'avoir lu jusqu'au bout. Les commentaires sont toujours les bienvenus.

Si vous avez trouvé cet article utile, partagez-le avec vos amis.

Connectons-nous sur Twitter !


Linux
  1. Planification des tâches avec la commande Linux cron

  2. Comment j'utilise cron sous Linux

  3. Planification des tâches système avec Cron sous Linux

  4. Comment définir des tâches automatisées sur un VPS Linux à l'aide de Cron ?

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

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

Comment sécuriser les serveurs Linux avec SE Linux

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

Comment automatiser les tâches quotidiennes sur Linux en utilisant (at)

Cron Vs Anacron :Comment configurer Anacron sous Linux (avec un exemple)

Comment planifier des tâches avec Cron sous Linux