Comment configurer des travaux cron dans Linux

Comment configurer des travaux cron dans Linux
L'automatisation et la planification des tâches répétées sur les ordinateurs de bureau et les serveurs améliorent la productivité et réduisent l'intervention et la surveillance manuelles. De nombreux outils de ce type sont disponibles pour Linux et l'un des plus utilisés parmi eux est «Cron».

Cet article expliquera les tâches de planification et l'exécution de scripts à intervalles réguliers en utilisant des travaux Cron.

Qu'est-ce que Cron?

Cron est un programme de planification des tâches qui s'exécute en arrière-plan comme processus. Il peut être utilisé pour exécuter périodiquement certains travaux planifiés en utilisant son ensemble de règles prédéfinies. Cron est préinstallé sur la plupart des distributions Linux ou disponible dans les référentiels à installer 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.heures »,« / etc / cron.tous les jours »,« / etc / cron.mensuel »et« / etc / cron.hebdomadaire".

Il suffit de mettre vos scripts souhaités dans l'un de ces dossiers pour exécuter des tâches automatisées horaires, quotidiennes, mensuelles ou hebdomadaires.

Notez que Cron utilise le shell «/ bin / sh» par défaut. Si vous souhaitez utiliser «/ bin / bash» comme coquille dans les scripts cron, vous devez utiliser «!# / bin / bash ”hashbang en haut du fichier de script ou définir la coquille comme une variable« shell = / bin / bash »dans la première ligne dans un script bash planifié. La variable d'environnement «Shell» dominante fonctionne également pour l'éditeur Crontab expliqué ci-dessous.

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

Crontab

Crontab vous permet de définir vos propres tâches planifiées. Vous pouvez l'utiliser pour configurer des planifications CRON différentes 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 Crontab en utilisant la commande ci-dessous:

$ crontab -e

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

Minute Hour Jour mois de semaine en semaine / Full / Path / To / Script.shot

Où:

  • minute: toute valeur dans la plage 0 à 59
  • heure: toute valeur dans la plage de 0 à 23, 0 étant minuit
  • Jour: Toute valeur dans la plage 1 à 31
  • Mois: Toute valeur dans la plage 1 à 12
  • Jour de semaine: toute valeur dans la gamme 0 à 6, 0 étant dimanche

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

13 15 2 3 2 Schec

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 à travers des exemples, donc ci-dessous quelques exemples qui prendront périodiquement des captures d'écran de votre bureau et les stockeront dans le dossier de la maison.

Outre les cinq variables de planification, Cron utilise également une chaîne spéciale pour planifier des travaux. Ces cordes sont:

  • @hourly: le travail est exécuté toutes les heures
  • @Daily / @midnight: le travail est exécuté tous les jours
  • @weekly: le travail fonctionne une fois par semaine
  • @monthly: le travail fonctionne une fois par mois
  • @yearly / @anually: le travail fonctionne une fois par an
  • @reboot: le travail fonctionne une fois à chaque redémarrage / connexion

L'entrée Crontab ci-dessous prendra une capture d'écran une fois sur 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 tableau générateur à 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:

* * * * * Schec

Toutes les heures:

0 * * * * Schec

Tous les jours à 18h00:

0 18 * * * Schec

Chaque mois le 6 à 18h00:

0 18 6 * * Schec

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

* / 30 * * * * Schec

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 tous les 1er, 4e et 5e minute d'une nouvelle heure.

1,4,5 * * * * Schec

Vérification des entrées Crontab

Définir les entrées de Crontab peut être délicate mais les déboguer ou la vérification si elles fonctionnent à des horodatages corrects sont encore plus délicats. Une option consiste à utiliser une machine virtuelle et à enregistrer des horodatages d'un script exécutant périodiquement sur un travail 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 travail Cron en ligne disponibles sur le Web. Je recommande d'essayer le site Web de Cron Tester disponible ici.

Conclusion

La gestion de Cron Jobs 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 vérifier que la définition de votre planificateur fonctionne correctement, surtout s'il y a des tâches critiques de mission.