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 :
Sommaire
Pré-requis
- Niveau LPIC 1
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 :
FACILITY.PRIORITY ACTION
É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 |
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.