crontab

Comment configurer des tâches Cron sous Linux

Comment configurer des tâches Cron sous Linux
L'automatisation et la planification des tâches répétées sur les postes de travail et les serveurs améliorent la productivité et réduisent les interventions manuelles et la surveillance. De nombreux outils de ce type sont disponibles pour Linux et l'un des plus utilisés d'entre eux est "cron".

Cet article explique la planification des tâches et l'exécution de scripts à intervalles réguliers à l'aide de tâches cron.

Qu'est-ce que Cron?

Cron est un programme de planification de tâches qui s'exécute en arrière-plan en tant que processus. Il peut être utilisé pour exécuter périodiquement certains travaux qui sont planifiés à l'aide de son ensemble de règles prédéfini. Cron est préinstallé sur la plupart des distributions Linux ou disponible dans les référentiels pour être installé manuellement.

Préréglages Cron

Cron sur Ubuntu est livré avec un ensemble de planificateurs prédéfinis. Vous pouvez les vérifier en exécutant la commande ci-dessous :

$ ls /etc/cron.*

Habituellement, ces dossiers sont "/etc/cron.toutes les heures", "/etc/cron.tous les jours", "/etc/cron.mensuel" et "/etc/cron.hebdomadaire".

Placez simplement vos scripts souhaités dans l'un de ces dossiers pour exécuter des tâches automatisées toutes les heures, tous les jours, tous les mois ou toutes les semaines.

Notez que cron utilise le shell "/bin/sh" par défaut. Si vous souhaitez utiliser "/bin/bash" comme shell dans les scripts cron, vous devez utiliser "!# /bin/bash" hashbang en haut du fichier de script ou définissez le shell comme variable "SHELL=/bin/bash" dans la première ligne d'un script bash programmé. Le remplacement de la variable d'environnement "SHELL" fonctionne également pour l'éditeur crontab expliqué ci-dessous.

Toutes les variables d'environnement système peuvent ne pas être exposées aux tâches cron. C'est donc généralement une bonne idée de définir manuellement les variables d'environnement importantes dans un script planifié par cron.

Crontab

Crontab vous permet de définir vos propres tâches planifiées. Vous pouvez l'utiliser pour configurer des horaires cron différents des quatre préréglages cron standard expliqués ci-dessus.

Pour définir une tâche planifiée dans crontab, lancez d'abord l'éditeur de crontab à l'aide de la commande ci-dessous :

$ crontab -e

Maintenant, à la fin du fichier, vous pouvez ajouter une entrée au format suivant :

minute heure jour mois jour de la semaine /full/path/to/script.sh

Où:

L'entrée crontab ci-dessous prendra une capture d'écran de votre bureau et la stockera dans votre répertoire personnel une fois à 15h13 le 2 mars et tous les mardis de mars à 15h13.

13 15 2 3 2 scrot

Pour répertorier toutes les entrées crontab, utilisez la commande ci-dessous :

$ crontab -l

Plus d'exemples

Les tâches cron peuvent être mieux expliquées par des exemples, voici donc quelques exemples qui prendront périodiquement des captures d'écran de votre bureau et les stockeront dans le dossier de départ.

Outre les cinq variables de planification, cron utilise également une chaîne spéciale pour planifier les tâches. Ces chaînes sont :

L'entrée crontab ci-dessous fera une capture d'écran une fois à chaque redémarrage :

@reboot scrot

Vous pouvez remplacer "@reboot" par toute autre chaîne spéciale mentionnée ci-dessus.

L'utilisation d'un astérisque ou d'un caractère générique à la place de l'une des cinq variables répétera le travail sur toutes les nouvelles instances de cette variable. L'entrée ci-dessous prendra une capture d'écran toutes les minutes :

* * * * * scroc

Toutes les heures:

0 * * * * scroc

Tous les jours à 18h00 :

0 18 * * * scrot

Chaque mois le 6 à 18h00 :

0 18 6 * * scrot

Utilisez "/" pour exécuter un script à un intervalle périodique fixe de 30 minutes (exécuté toutes les 30 minutes) :

*/30 * * * * scrot

Vous pouvez utiliser des variables séparées par des virgules pour définir l'exécution répétée du script à intervalles réguliers. L'exemple ci-dessous prendra une capture d'écran de votre bureau toutes les 1ère, 4ème et 5ème minute d'une nouvelle heure.

1,4,5 * * * * scroc

Vérification des entrées Crontab

Définir des entrées crontab peut être délicat, mais les déboguer ou vérifier si elles fonctionnent à des horodatages corrects est encore plus délicat. Une option consiste à utiliser une machine virtuelle et à consigner les horodatages d'un script s'exécutant périodiquement sur une tâche cron en incluant quelque chose comme la commande "date" et en redirigeant la sortie vers un fichier texte. Cependant, une meilleure solution consiste à utiliser l'un des nombreux services de test de tâches cron en ligne disponibles sur le Web. Je recommande de donner le site Web du testeur cron disponible ici un essai.

Conclusion

L'exécution de tâches cron est un excellent moyen d'automatiser les tâches répétées, en particulier sur les serveurs. L'outil est extrêmement puissant et personnalisable. Cependant, il est important de s'assurer que la définition de votre planificateur fonctionne correctement, surtout s'il y a des tâches critiques.

Moteurs de jeux gratuits et open source pour le développement de jeux Linux
Cet article couvrira une liste de moteurs de jeux gratuits et open source qui peuvent être utilisés pour développer des jeux 2D et 3D sur Linux. Il ex...
Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...