Recherche de site Web

Série RHCSA : Gestion des packages Yum, automatisation des tâches avec Cron et surveillance des journaux système - Partie 10


Dans cet article, nous verrons comment installer, mettre à jour et supprimer des packages dans Red Hat Enterprise Linux 7. Nous expliquerons également comment automatiser les tâches à l'aide de cron et terminerons ce guide en expliquant comment localiser et interpréter les fichiers journaux du système, dans le but de vous apprendre pourquoi toutes ces compétences sont essentielles pour tout administrateur système.

Gestion des packages via Yum

Pour installer un package ainsi que toutes ses dépendances qui ne sont pas déjà installées, vous utiliserez :


yum -y install package_name(s)

package_name(s) représente au moins un vrai nom de package.

Par exemple, pour installer httpd et mlocate (dans cet ordre), tapez.


yum -y install httpd mlocate

Remarque : La lettre y dans l'exemple ci-dessus contourne les invites de confirmation présentées par yum avant d'effectuer le téléchargement et l'installation des programmes demandés. Vous pouvez le laisser de côté si vous le souhaitez.

Par défaut, yum installera le package avec l'architecture qui correspond à l'architecture du système d'exploitation, à moins qu'il ne soit remplacé par l'ajout de l'architecture du package à son nom.

Par exemple, sur un système 64 bits, yum install package installera la version x86_64 du package, tandis que yum install package.x86 (si disponible) installera celui 32 bits.

Il y aura des moments où vous souhaiterez installer un package mais ne connaîtrez pas son nom exact. Les options rechercher tout ou rechercher peuvent rechercher dans les référentiels actuellement activés un certain mot-clé dans le nom du package et/ou dans sa description, respectivement.

Par exemple,


yum search log

recherchera dans les référentiels installés les packages avec le mot log dans leurs noms et résumés, alors que


yum search all log

recherchera également le même mot-clé dans les champs de description du package et url.

Une fois que la recherche renvoie une liste de packages, vous souhaiterez peut-être afficher des informations supplémentaires sur certains d'entre eux avant l'installation. C'est alors que l'option info s'avérera utile :


yum info logwatch

Vous pouvez régulièrement vérifier les mises à jour avec la commande suivante :


yum check-update

La commande ci-dessus renverra tous les packages installés pour lesquels une mise à jour est disponible. Dans l'exemple présenté dans l'image ci-dessous, seul rhel-7-server-rpms dispose d'une mise à jour disponible :

Vous pouvez ensuite mettre à jour ce package seul avec,


yum update rhel-7-server-rpms

Si plusieurs packages peuvent être mis à jour, yum update les mettra tous à jour en même temps.

Maintenant, que se passe-t-il lorsque vous connaissez le nom d'un exécutable, tel que ps2pdf, mais que vous ne savez pas quel package le fournit ? Vous pouvez découvrir avec miam ce qui fournit « */[exécutable] » :


yum whatprovides “*/ps2pdf”

Désormais, lorsqu'il s'agit de supprimer un package, vous pouvez le faire avec yum Remove Package. Facile, hein ? Cela montre que yum est un gestionnaire de paquets complet et puissant.


yum remove httpd

Lire aussi : 20 commandes Yum pour gérer la gestion des packages RHEL 7

Bon vieux régime simple

RPM (alias RPM Package Manager, ou à l'origine RedHat Package Manager) peut également être utilisé pour installer ou mettre à jour des packages lorsqu'ils se présentent sous la forme d'un package autonome. Paquets .rpm.

Il est souvent utilisé avec les indicateurs -Uvh pour indiquer qu'il doit installer le paquet s'il n'est pas déjà présent ou tenter de le mettre à jour s'il est installé (-U), produisant une sortie détaillée (-v) et une barre de progression avec des marques de hachage (-h) pendant l'exécution de l'opération. Par exemple,


rpm -Uvh package.rpm

Une autre utilisation typique de rpm consiste à produire une liste des packages actuellement installés avecrpm -qa (abréviation de query all) :


rpm -qa

Lire aussi : 20 commandes RPM pour installer des packages dans RHEL 7

Planification de tâches à l'aide de Cron

Linux et d'autres systèmes d'exploitation de type Unix incluent un outil appelé cron qui vous permet de planifier des tâches (c'est-à-dire des commandes ou des scripts shell) à exécuter périodiquement. Cron vérifie toutes les minutes dans le répertoire /var/spool/cron les fichiers qui portent le nom de comptes dans /etc/passwd.

Lors de l'exécution de commandes, tout résultat est envoyé par courrier au propriétaire de la crontab (ou à l'utilisateur spécifié dans la variable d'environnement MAILTO dans le fichier /etc/crontab, s'il existe).

Les fichiers Crontab (qui sont créés en tapant crontab -e et en appuyant sur Entrée) ont le format suivant :

Ainsi, si nous voulons mettre à jour la base de données de fichiers locale (qui est utilisée par Locate pour rechercher des fichiers par nom ou modèle) tous les deux jours du mois à 2h15 du matin, nous devons ajouter ce qui suit Entrée crontab :


15 02 2 * * /bin/updatedb

L'entrée crontab ci-dessus se lit comme suit : « Exécutez /bin/updatedb le deuxième jour du mois, chaque mois de l'année, quel que soit le jour de la semaine, à 2h15 ». Comme vous l’avez sûrement déjà deviné, le symbole étoile est utilisé comme caractère générique.

Après avoir ajouté une tâche cron, vous pouvez voir qu'un fichier nommé root a été ajouté dans /var/spool/cron, comme nous l'avons mentionné précédemment. Ce fichier répertorie toutes les tâches que le démon crond doit exécuter :


ls -l /var/spool/cron

Dans l'image ci-dessus, la crontab de l'utilisateur actuel peut être affichée soit en utilisant cat /var/spool/cron/root ou,


crontab -l

Si vous devez exécuter une tâche de manière plus fine (par exemple, deux fois par jour ou trois fois par mois), cron peut également vous aider à le faire.

Par exemple, pour exécuter /my/script le 1er et le 15 de chaque mois et envoyer n'importe quelle sortie à /dev/null, vous pouvez ajoutez deux entrées crontab comme suit :


01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

Mais pour que la tâche soit plus facile à maintenir, vous pouvez combiner les deux entrées en une seule :


01 00 1,15 * *  /my/script > /dev/null 2>&1

En suivant l'exemple précédent, nous pouvons exécuter /my/other/script à 1h30 le premier jour du mois tous les trois mois :


30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

Mais lorsque vous devez répéter une certaine tâche tous les « x » minutes, heures, jours ou mois, vous pouvez diviser la bonne position par la fréquence souhaitée. L'entrée crontab suivante a exactement la même signification que la précédente :


30 01 1 */3 * /my/other/script > /dev/null 2>&1

Ou peut-être avez-vous besoin d'exécuter une certaine tâche à une fréquence fixe ou après le démarrage du système, par exemple. Vous pouvez utiliser l'une des chaînes suivantes au lieu des cinq champs pour indiquer l'heure exacte à laquelle vous souhaitez que votre tâche s'exécute :


@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

Lire aussi : 11 commandes pour planifier des tâches Cron dans RHEL 7

Localisation et vérification des journaux

Les journaux système sont situés (et alternés) dans le répertoire /var/log. Selon la norme Linux Filesystem Hierarchy Standard, ce répertoire contient divers fichiers journaux, qui y sont écrits ou dans un sous-répertoire approprié (tel que audit, httpd ou samba dans l'image ci-dessous) par les démons correspondants pendant le fonctionnement du système :


ls /var/log

D'autres journaux intéressants sont dmesg (contient tous les messages du tampon en anneau du noyau), sécurisé (enregistre les tentatives de connexion qui nécessitent une authentification de l'utilisateur), messages (messages à l'échelle du système) et wtmp (enregistrements de toutes les connexions et déconnexions des utilisateurs).

Les journaux sont très importants dans la mesure où ils vous permettent d'avoir un aperçu de ce qui se passe à tout moment dans votre système et de ce qui s'est passé dans le passé. Ils représentent un outil inestimable pour dépanner et surveiller un serveur Linux, et sont donc souvent utilisés avec la commande tail -f pour afficher les événements, en temps réel, au fur et à mesure qu'ils se produisent et sont enregistrés dans un journal.

Par exemple, si vous souhaitez afficher les événements liés au noyau, tapez la commande suivante :


tail -f /var/log/dmesg

Idem si vous souhaitez visualiser les accès à votre serveur web :


tail -f /var/log/httpd/access.log

Résumé

Si vous savez comment gérer efficacement les packages, planifier les tâches et où rechercher des informations sur le fonctionnement actuel et passé de votre système, vous pouvez être assuré que vous ne rencontrerez pas très souvent de surprises. J'espère que cet article vous a aidé à apprendre ou à rafraîchir vos connaissances sur ces compétences de base.

N'hésitez pas à nous écrire en utilisant le formulaire de contact ci-dessous si vous avez des questions ou des commentaires.