GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisez anacron pour une meilleure crontab

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 :

  1. Ajouter un répertoire à ~/.local/etc (par exemple, cron.weekly ).
  2. 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).

  3. 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.


Linux
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment utiliser rsync avancé pour les sauvegardes Linux volumineuses

  3. Comment utiliser systemd-nspawn pour la récupération du système Linux

  4. Linux – Quelle application utiliser pour un calendrier ?

  5. Linux Vs Windows - Pourquoi Linux est meilleur pour la programmation et le développement Web

Manjaro contre Ubuntu – qu'est-ce qui vous convient le mieux ?

CloudBerry Un outil de sauvegarde cloud facile à utiliser pour Linux

50 commandes Crontab Linux incroyables pour les administrateurs système

15 raisons d'utiliser Manjaro Linux | Arch Linux convivial pour tous

6 distributions Linux à usage éducatif

MX Linux 17 Une distribution Linux facile à utiliser pour les noobs