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.shotOù:
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 SchecPour 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:
L'entrée Crontab ci-dessous prendra une capture d'écran une fois sur chaque redémarrage:
@reboot scrotVous 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:
* * * * * SchecToutes les heures:
0 * * * * SchecTous les jours à 18h00:
0 18 * * * SchecChaque mois le 6 à 18h00:
0 18 6 * * SchecUtilisez «/» pour exécuter un script à un intervalle périodique fixe de 30 minutes (fonctionne toutes les 30 minutes):
* / 30 * * * * SchecVous 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 * * * * SchecVé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.