Maintenance système

Ce module couvre la partie syslogd dans la partie LPI 102. L'accent est ajouté sur la partie gestion des journaux et la résolution de nom. Le paquetage de logiciel est aussi couvert ici. Nous verrons comment réaliser un paquet RPM.

État : {a_reli}

Retour au document principal

Pré-requis

1. Système de journalisation

Stopper et démarrer syslogd

Le démon syslogd est responsable de la journalisation système. Il est démarré comme un service :

/etc/rc.d/init.d/syslogd start/stop/status/restart/condrestart

Les lignes suivante sont issus du script rc de syslogd:

if [ -f /etc/sysconfig/syslog ] ; then . /etc/sysconfig/syslog

Le Fichier /etc/sysconfig/syslog défini les variables par défaut suivante :

SYSLOGD_OPTIONS="-m 0"
KLOGD_OPTIONS="-2"

Le fichier de configuration

Le fichier de configuration est /etc/syslog.conf avec le format suivant :

Équipements (Facilities)

auth, authpriv, cron,daemon, kern, lpr, mail, mark, news, security (comme auth), syslog,user, uucp et local0 a local7

Priorités (Priorities)

debug, info, notice, warning,err, crit, alert, emerg

Les éléments suivants sont déconseillés: error (comme err), warn (comme warning), panic (comme emerg)

Actions

Flat file

Chemin absolu d'un fichier, souvent dans /var/log

Terminal

Utilise /dev/ttyN pour afficher les journaux en sortis

Username

Si l'utilisateur est connecté, il envoi les journaux directement sur le tty de l'utilisateur

Host

Envoi les journaux a un hôte distant.IP de l'hôte distant avec le signe @

Envoi des journaux au un serveur distant

Nous avons vu précédemment que le syslogd locale peut envoyer les journaux a un hôte distant (ex 192.168.10.33) qui a un syslogd de lancé. Supposons que nous voulons envoyer tous les journaux à cet hôte distant, ce serait la syntaxe:

*.* @192.168.10.33

Configuration de syslogd pour accepter des journaux distant

Dans ce cas, nous voulons que des systèmes distants puissent envoyer leurs logs a notre serveur. La seule option qui doit être ajouté au démarrage est -r.

Éditer /etc/sysconfig/syslog et ajouter l'option -r a la variable SYSLOGD_OPTIONS

SYSLOGD_OPTIONS="-r -m 0"

Puis redémarrer le service syslog.

Résolution de nom

Une fois qu' un serveur a été configuré comme un serveur pour les connexions à distance, il acceptera les journaux à partir d'hôtes sur le réseau. Par défaut, ces hôtes apparaissent avec une adresse IP dans les journaux à moins que les hôtes sont listés dans /etc/hosts. Cela est dû au fait que syslogd ne pouvez pas utiliser les services DNS. En fait, syslogd n'a pas été compilé avec libresolv.so, comme on le voit ci-dessous:

ldd syslogd

libc.so.6 => /lib/i686/libc.so.6 (0x40024000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


ldd ping

libresolv.so.2 => /lib/libresolv.so.2 (0x40024000)
libc.so.6 => /lib/i686/libc.so.6 (0x40035000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000

2. Construction RPM

Voici une vue d'ensemble des sections spécifiques:

Description

Summary

Un résumé de ce que le paquet fournit

Name

Nom du paquet

Version

Version du paquet

Release

Release du paquet

Copyright

Accord du droit d'auteur en vertu de laquelle le paquet est libéré

Group

Le groupe de packages (Amusement, documentation ...)

Source

La voie contenant vers la source et les fichiers archives

BuildRoot

Chemin d'accès au système de fichiers racine (fake) temporaire

Macros et Section

%define

Définir une variable qui peut être référencé par la suite dans le fichier SPEC

%description

Description du type d'article pour le paquet (généralement plus de Résumé)

%prep

La section de préparation comprend la décompression des archives sources et les corrections (patch)

%setup

Décompresser l'archive source

%patch

Applique un patch si nécessaire

%build

La section construction (build) comprend des commandes à exécuter dans le répertoire BUILD et exécuter les commandes suivantes (make, ...)

%install

La section installer, comprend les commandes pour copier les fichiers du répertoire BUILD dans le faux répertoire $RPM_BUILD_ROOT

%clean

Supprime tous les fichiers dans $RPM_BUILD_ROOT

%files

Liste les fichiers dans le paquet

%doc

Liste les fichiers qui font partie de la documentation

%config

Liste les fichiers qui font partie de la configuration

Exemple: Copier fstab dans /tmp/etc/fstab

Nous pouvons construire un paquet RPM simple qui installe un fichier fstab dans / tmp / etc /. Le fichier spec va ressembler à ceci:

#This is the Header section
Summary: Installs a fstab file to /tmp/etc
%define name tmp-fstab
%define version 0.2
%define release 1
Name: %{name}
Version: %{version}
Release: %{release}
Copyright: Freely distributable
Group: Documentation
Source: %{name}-%{version}.tar.gz
Packager: Adrian Thomasset <adrian@linuxit.com>

#Le répertoire BuildRoot est un remplacement temporaire pour racine (/) alors que le paquet est en cours de construction.
BuildRoot: /var/tmp/rpm-%{name}/

%description
This package copies a file called fstab to /tmp/etc/

%prep
#La macro %setup ouvre simplement les fichiers archivés à partir de sources en créer un répertoire pour des modifications
(/../../BUILD/%{name}-%{version}/
%setup

#Tout le travail est fait ici: $ RPM_BUILD_ROOT est une référence à la variable définie en utilisant la variable %BuildRoot
command earlier
%install

rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/tmp/etc/
install -m 644 fstab $RPM_BUILD_ROOT/tmp/etc/fstab

%clean
rm -rf $RPM_BUILD_ROOT
#Défini quel sont les fichiers qui doivent etre copiés dans le paquet RPM binaire.
directory
%files
/tmp/etc/fstab
%defattr(-,adrian,adrian)

Tout ce qui reste à faire est de préparer la source. Dans ce cas, nous devons créer un répertoire appelé tmp-fstab-0.2 contenant fstab. Notez que le nom et la version correspondant au nom de la version définie dans le fichier SPEC.

mkdir tmp-fstab-0.2
cp /etc/fstab tmp-fstab-0.2/

Ensuite on archive le répertoire et on le copie dans le répertoire des sources :

tar cvzf tmp-fstab-0.2.tar.gz tmp-fstab/
cp tmp-fstab-0.2.tar.gz /path/to/SOURCES/

3. Reconstruction Debian

Les outils de reconstruction de Debian sont installés avec

apt-get install devscripts build-essential fakeroot

Exemple: la construction d'un paquet foo

La commande suivante va récupérer les sources du paquet foo:

apt-get source foo

Nous devons également installer les paquets nécessaires pour reconstruire le paquet foo comme suit:

apt-get build-dep foo

Nous allons ensuite aller dans le répertoire source de foo et utiliser debuild pour faire un paquet :

cd foo/
debuild -us -uc

Enfin, le répertoire ci-dessus contient le paquet dpkg.