En 2021, il y a plus de raisons que jamais pour lesquelles les gens aiment Linux. Dans cette série, je partagerai 21 raisons différentes d'utiliser Linux. L'automatisation est l'une des meilleures raisons d'utiliser Linux.
L'une de mes choses préférées à propos de Linux est sa volonté de travailler pour moi. Au lieu d'effectuer des tâches répétitives qui me prennent du temps, sont sujettes à des erreurs ou que je suis susceptible d'oublier, je programme Linux pour qu'il les fasse à ma place.
Préparer l'automatisation
Le terme "automatisation" peut être aussi intimidant qu'attrayant. Je trouve qu'il est utile de l'aborder de manière modulaire.
1. Que voulez-vous faire ?
Tout d'abord, sachez quel résultat vous voulez produire. Mettez-vous des filigranes sur les images ? Supprimer des fichiers d'un répertoire encombré ? Effectuer une sauvegarde de données importantes ? Définissez clairement la tâche pour vous-même afin que vous sachiez vers quoi viser. S'il y a une tâche que vous vous retrouvez à faire tous les jours, beaucoup moins d'une fois par jour, alors cela pourrait être un candidat pour l'automatisation.
2. Découvrez les applications dont vous avez besoin
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Décomposez les grandes tâches en petits composants et apprenez à produire chaque résultat manuellement, mais de manière reproductible et prévisible. Une grande partie de ce qui peut être fait sur Linux peut être scriptée, mais il est important de reconnaître vos limites actuelles. Il y a un monde de différence entre apprendre à redimensionner automatiquement plusieurs images afin qu'elles puissent être envoyées par e-mail de manière pratique et utiliser l'apprentissage automatique pour générer des illustrations élaborées pour votre newsletter hebdomadaire. L'une de ces choses peut être apprise en un après-midi et l'autre peut prendre des années. Cependant, nous devons tous commencer quelque part, alors commencez petit et soyez toujours à l'affût des moyens de vous améliorer.
3. Automatisez-le
Utilisez un outil d'automatisation sous Linux pour que cela se produise régulièrement. C'est l'étape couverte par cet article !
Pour automatiser quelque chose, vous avez besoin d'un script qui automatise une tâche. Lors des tests, il est préférable de garder les choses simples, donc la tâche que cet article automatise est la création d'un fichier appelé hello
dans le /tmp
répertoire :
#!/bin/sh
touch /tmp/hello
Copiez et collez ce script simple dans un fichier texte et nommez-le example
.
Cron
La solution d'automatisation intégrée fournie avec chaque installation Linux est le système cron. Les utilisateurs de Linux ont tendance à se référer à cron de manière générique comme la méthode que vous utilisez pour planifier une tâche (généralement appelée "tâche cron"), mais il existe plusieurs applications qui fournissent la fonctionnalité de cron. Le plus polyvalent est copain; son avantage est qu'il ne le fait pas supposons que votre ordinateur est toujours allumé, comme le font les applications cron historiques conçues pour les administrateurs système.
Vérifiez quel système cron votre distribution Linux fournit. Si c'est autre chose que cronie, vous pouvez probablement installer cronie à partir du référentiel de logiciels de votre distribution. Si votre distribution n'a pas de paquet pour cronie, vous pouvez utiliser l'ancien anacron
paquet à la place. L'anacron
La commande est incluse avec cronie, donc quelle que soit la façon dont vous l'obtenez, vous voulez vous assurer que vous avez le anacron
commande disponible sur votre système avant de continuer. Anacron peut nécessiter des privilèges d'administrateur racine, selon votre configuration.
$ which anacron
/usr/sbin/anacron
Le travail d'Anacron est de s'assurer que vos tâches d'automatisation sont exécutées régulièrement. Pour ce faire, anacron vérifie la date de la dernière exécution d'une tâche, puis vérifie à quelle fréquence vous lui avez demandé d'exécuter des tâches.
Supposons que vous définissiez anacron pour exécuter un script une fois tous les cinq jours. Chaque fois que vous allumez votre ordinateur ou que vous le sortez du mode veille, anacron analyse ses journaux pour déterminer s'il doit exécuter la tâche. Si une tâche a été exécutée il y a cinq jours ou plus, alors anacron l'exécute.
Tâches Cron
De nombreux systèmes Linux sont livrés avec quelques tâches de maintenance à effectuer par cron. J'aime garder mes travaux séparés des travaux système, donc je crée un répertoire dans mon répertoire personnel. Plus précisément, il existe un dossier caché appelé ~/.local
("local" dans le sens où il est personnalisé pour votre compte utilisateur plutôt que pour votre système informatique "global"), je crée donc le sous-répertoire etc/cron.daily
pour refléter la maison habituelle de cron sur mon système. Vous devez également créer un répertoire spool pour garder une trace de la dernière fois que les travaux ont été exécutés.
$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron
Vous pouvez placer n'importe quel script que vous souhaitez exécuter régulièrement dans le ~/.local/etc/cron.daily
annuaire. Copiez l'example
script dans le répertoire maintenant et marquez-le comme exécutable à l'aide de la commande chmod.
$ cp example ~/.local/etc/cron.daily
$ chmod +x ~/.local/etc/cron.daily/example
Ensuite, configurez anacron pour exécuter tous les scripts situés dans le ~/.local/etc/cron.daily
répertoire.
Anacron
Par défaut, une grande partie du système cron est considérée comme le domaine de l'administrateur système car il est souvent utilisé pour des tâches importantes de bas niveau, comme la rotation des fichiers journaux et la mise à jour des certificats. La configuration présentée dans cet article est conçue pour un utilisateur régulier qui configure des tâches d'automatisation personnelles.
Pour configurer anacron pour exécuter vos tâches cron, créez un fichier de configuration sur /.local/etc/anacrontab
:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1 0 cron.mine run-parts /home/tux/.local/etc/cron.daily/
Ce fichier indique à anacron d'exécuter tous les scripts exécutables (run-parts
) trouvé dans ~/.local/etc/cron.daily
tous les jours (c'est-à-dire tous les jours), avec un délai de zéro minute. Parfois, un délai de quelques minutes est utilisé pour que votre ordinateur ne soit pas confronté à toutes les tâches possibles juste après votre connexion. Ces paramètres conviennent toutefois aux tests.
Le cron.mine
value est un nom arbitraire pour le processus. Je l'appelle cron.mine
mais vous pouvez l'appeler cron.personal
ou penguin
ou tout ce que vous voulez.
Vérifiez votre anacrontab
syntaxe du fichier :
$ anacron -T -t ~/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron
Le silence est synonyme de succès.
Ajout d'anacron à .profile
Enfin, vous devez vous assurer qu'anacron fonctionne avec votre configuration locale. Parce que vous exécutez anacron en tant qu'utilisateur normal et non en tant qu'utilisateur root, vous devez le diriger vers vos configurations locales — le anacrontab
fichier indiquant à anacron ce qu'il faut faire, et le répertoire spool aidant anacron à garder une trace du nombre de jours écoulés depuis la dernière exécution de chaque tâche :
anacron -fn -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron
Le -fn
les options indiquent à anacron d'ignorer horodatages, ce qui signifie que vous le forcez à exécuter votre travail cron quoi qu'il arrive. Ceci est exclusivement à des fins de test.
Test de votre tâche cron
Maintenant que tout est configuré, vous pouvez tester le travail. Vous pouvez techniquement tester cela sans redémarrer, mais il est plus logique de redémarrer car c'est ce pour quoi il est conçu :des sessions de connexion interrompues et irrégulières. Prenez un moment pour redémarrer votre ordinateur, connectez-vous, puis recherchez le fichier de test :
$ ls /tmp/hello
/tmp/hello
En supposant que le fichier existe, votre exemple de script a été exécuté avec succès. Vous pouvez maintenant supprimer les options de test de ~/.profile
, en laissant ceci comme configuration finale :
anacron -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron
Utiliser anacron
Votre infrastructure d'automatisation personnelle est configurée, vous pouvez donc placer n'importe quel script que vous souhaitez que votre ordinateur gère pour vous dans le ~/.local/etc/cron.daily
répertoire et il s'exécutera comme prévu.
C'est à vous de décider à quelle fréquence vous voulez que les tâches s'exécutent. Votre exemple de script est exécuté une fois par jour. Évidemment, cela dépend si votre ordinateur est allumé et réveillé un jour donné. Si vous utilisez votre ordinateur le vendredi mais que vous le mettez de côté pour le week-end, le script ne s'exécutera pas le samedi et le dimanche. Cependant, le lundi, le script s'exécutera car anacron saura qu'au moins un jour s'est écoulé. Vous pouvez ajouter des répertoires hebdomadaires, bimensuels ou même mensuels à ~/.local/etc
pour planifier une grande variété d'intervalles.
Pour ajouter un nouvel intervalle :
- Ajouter un répertoire à
~/.local/etc
(par exemple,cron.weekly
). - Ajouter une ligne à
~/.local/etc/anacrontab
pour exécuter des scripts dans le nouveau répertoire. Pour un intervalle hebdomadaire, la configuration serait :7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/
(avec le
0
valeur étant éventuellement un certain nombre de minutes pour retarder poliment le démarrage du script). - Placez vos scripts dans
cron.weekly
répertoire.
Bienvenue dans le mode de vie automatisé. Vous n'en aurez pas envie, mais vous êtes sur le point de devenir beaucoup plus productif.