maintenance du système linux

30
SYSTEME D’EXPLOITATION UNIX Chapitre 6. System Maintenance - Construction et installation de programmes à partir du code source - Opérations de sauvegarde 1

Upload: el-amri-el-hassan

Post on 03-Jun-2015

1.040 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maintenance du système Linux

SYSTEME D’EXPLOITATION UNIX

Chapitre 6. System Maintenance - Construction et installation de programmes à partir du code source

- Opérations de sauvegarde

1

Page 2: Maintenance du système Linux

Objectif du cours

Objectif 1

• Gestion des logs

Objectif 2

• (Re)Construire ses propres packages

Objectif 3

• Les sauvegardes sous Linux

2

Page 3: Maintenance du système Linux

Chapitre 1

Gestion des logs

Objectif 1 Présentation de Syslog

La configuration

La Source

Le filtrage

Les message LOG

Lire ses fichiers de logs

3

Page 4: Maintenance du système Linux

Gestion des logs Présentation de Syslog

Syslog-ng est en quelque sorte la version améliorée de syslog. La grande nouveauté est

la possibilité d'appliquer des filtres sur les messages de log générés. La partie log réseau

a également été améliorée.

Sysklog est une implémentation du protocol syslog plus ancienne mais encore utilisée

sous certains UNIX.Composé de deux daemons: syslogd qui s'occupe du logging du

système et klogd qui s'occupe du logging du noyau.

4

Page 5: Maintenance du système Linux

Configuration

Le fichier de configuration de syslog-ng est /etc/syslog-ng/syslog-ng.conf.

5 mots clés définissent le comportement de syslog-ng :

• options : définit les options de syslog-ng

• source : définit les sources d'où syslog-ng récupèrera les messages de log

• destination : définit l'emplacement d'écriture final des messages de log

• filter : les filtres à appliquer à la source

• log : élément qui va lier les sources, un ou plusieurs filtres et une ou plusieurs

destinations

5

Page 6: Maintenance du système Linux

La source Ce mot clé va nous permettre de définir une ou plusieurs "entrée" dans le système de

traitement de syslog-ng.

Cette source contient plusieurs entrées de types différents. Tout d'abord, une entrée "internal()"

spécifique à syslog-

ng. Nous pouvons ensuite lire l'intégralité des messages de log depuis le fichier /dev/log qui

n'est rien d'autre que le point d'entrée et de sortie des messages envoyés par la fonction

syslog() des librairies C.

6

Page 7: Maintenance du système Linux

Le kernel fournit un point de lecture de ses propres messages grâce au fichier /proc/kmsg.

Si nous souhaitons que notre daemon syslog-ng agisse en tant que serveur réseau de logs, il

suffit alors de placer la fonction "udp()". Comme indiqué dans le commentaire, ce

paramètre agit comme l'option -r de l'ancien daemon syslogd.

7

Page 8: Maintenance du système Linux

Le filtrage Cette section est très importante et fait la force de syslog-ng.C'est ici que nous

définissons les filtres qui seront appliqué (plus tard) aux messages sources. Il faut préciser

ou non un ou plusieurs levels séparés par des "," qui correspondent au niveau du

message (debuggage, warning, information..etc.) à une facility précisée.

L'exemple suivant permet de récupérer tous les messages en provenance de la facility

cron et applique une restriction sur le niveau du message en ne récupérant que les

erreurs :

8

Page 9: Maintenance du système Linux

Le filtrage

Les propriétés de filtrage

9

Page 10: Maintenance du système Linux

Les messages LOG

Cette section permet tout simplement de relier les différents éléments de la

configuration . Cette section fait une liaison avec les deux dernières sections

c'est à dire la source, le filtre et la destination :

10

Page 11: Maintenance du système Linux

Lire ses fichiers de logs

Pour lire les fichiers de logs d'un système, on peut utiliser n'importe quelle

commande vue précédemment comme cat, head, less, more, etc ... Vous pouvez

aussi utiliser votre éditeur de texte préféré qu'il soit en disponible en CLI ou en

mode graphique.

Certaines commandes peuvent aussi se révéler plus pratiques que d'autres pour

lire les fichiers de logs comme tail qui permet d'afficher uniquement la fin du fichier

de log.

Vous pouvez aussi voir les logs en temps réel grâce à l'option -f de la commande

tail.

11

Page 12: Maintenance du système Linux

Chapitre 2 (Re)Construire ses propres packages

Objectif 2 Objectifs

Avec le gestionnaire de packages RPM

Créer un package avec les sources d'un programme

12

Page 13: Maintenance du système Linux

(Re)Construire ses propres packages

Objectifs

Pourquoi construire ou reconstruire ses packages ? Tout d'abord savoir construire ses

paquets est un moyen d'intégrer dans son système Linux une application non

supportée par défaut. Par exemple si je possède une distribution linux debian et que

je souhaite installer un lecteur vidéo mais que je ne dispose que des sources de ce

dernier, la meilleure solution est de générer un package DEB et de l'ajouter ensuite

avec la commande dpkg. Les avantages sont nombreux, on peut ensuite facilement

le désinstaller, le mettre à jour, le distribuer, ...

13

Page 14: Maintenance du système Linux

Avec le gestionnaire de packages RPM

Introduction

Le format Red hat Package Manager (RPM), est une archive contenant les binaires

d'un programme ainsi que des scripts d'installation pour ce dernier. Ces RPM sont

créés à partir des sources d'une application qui est d'abord décompressée, patchée

puis compilée. Le résultat de cette compilation est donc notre fameux fichier RPM

ainsi qu'un fichier RPM source, par exemple :

Binaire RPM : mc-4.6.1.i586.rpm. Ici l'archive RPM contient les binaires compilés

pour une architecture i586 du programme mc.

Source RPM : mc-4.6.1.src.rpm. Ici l'archive RPM contient les sources du

programme mc ainsi que tous les fichiers, toute la configuration nécessaire pour la

création du package RPM contenant les binaires.

14

Page 15: Maintenance du système Linux

Pour finir il est interressant de savoir que lors de la création d'un package RPM, divers scripts sont exécutés pour automatiser la compilation et toutes les étapes qui l'accompagnent . Voici donc les différents répertoires et dossiers qui contiennent ces librairies, scripts :

/var/lib/rpm : Ce dossier contient plusieurs petites base de données fichiers qui indexent tout les packages rpm du système. Voici quelques exemples :

/var/lib/rpm/Packages : Base de données des packages installés

/usr/lib/rpm : Contient les librairies et scripts utilisés par les archives rpm, contient également la configuration par défaut utilisée pour la création de packages.

/usr/lib/rpm/rpmrc : configuration par défaut utilisé pour la création des packages RPM. On peut y définir l'architecture de sortie, par exemple i386, ou i586 ou 64 bits, ...

/usr/lib/rpm/macros : contient l'ensemble des macros (scripts), variables, appelés par défaut lors de la création d'un package.

/usr/lib/rpm/* tout le reste des fichiers sont des scripts et des librairies utilisés par le gestionnaire de package rpm.

15

Page 16: Maintenance du système Linux

Recompiler un package RPM

A présent que tout est prêt nous pouvons enfin créer des packages rpms. Notre premier

test va être de recompiler un package RPM ce qui est très simple car il nous suffit d'utiliser

le rpm source et pour cela, 2 choix s'offrent à nous. Soit simplement recompiler le package

sans rien modifier ni patcher, à ce moment là on fera appel à la commande rpmbuild :

Soit nous souhaitons modifier un peu le package avant de le recompiler, à ce moment là

nous installons d'abord

le package rpm source :

16

Page 17: Maintenance du système Linux

Une fois installé, votre package de source est éclaté dans tous les dossiers que nous avons précédemment créé. Un fichier "package.spec" doit apparaître dans le dossier SPECS ainsi qu'une archive et tous les patchs du programme dans le dossier SOURCES. Admettons à présent que nous souhaitons intégrer un nouveau patch à notre programme :

1. Copiez le dans le dossier SOURCES

2. Modifier le fichier package.spec pour ajouter ci-dessous les lignes qui sont en gras :

3. Enfin dernière étape, la compilation :

17

Page 18: Maintenance du système Linux

Créer un package avec les sources d'un programme

Dans cette dernière partie nous allons détailler comment générer un package rpm à partir des sources d'un programme. L'objectif est donc de créer nous-même un fichier de spec pour la commande rpmbuild. Ce dernier est organisé en plusieurs sections que voici:

Une section globale qui renseigne le nom du package, le fichier contenant les sources, sa version, ...

Une section où l'on précise les étapes de compilation et les éventuels patches

Une section où l'on précise comment installer le programme sur le système, les répertoires de destinations, les permissions, ...

Des sections post et pré installation où l'on peut lancer des scripts, effectuer diverses actions

Une section description et une section changelog pour renseigner le maximum d'informations à propos du package.

18

Page 19: Maintenance du système Linux

La section globale du fichier de spec

Voici toutes les options que l'on peut retrouver dans cette section :

Name : le nom du package sans la version

BuildRequires : la liste des packages nécessaires uniquement lors de la compilation

Group : Utile pour le gestionnaire de package afin de classer le package dans un groupe (dépend de votre distribution).

Requires : liste des packages requis uniquement pour l'utilisation de la forme compilé du package

Version : version du programme que l'on souhaite compiler

Release : version du package ( patchs, ... )

BuildRoot : répertoire utilisé pour la compilation du package

Source : Url utilisé pour récupérer puis extraire le package dans le BuildRoot. On peut préciser une adresse ftp, http ou locale à la machine.

19

Page 20: Maintenance du système Linux

Chapitre 1

opérations de sauvegarde

Objectif 3

Concepts

Types de sauvegarde :

les utilitaires de sauvegarde :

Solutions de souvegarde :

20

Page 21: Maintenance du système Linux

1-concepts :

La sauvegarde est une tâche importante. Elle doit être effectuée périodiquement sur des machines

comportant des données sensibles.

Les opérations de sauvegarde sont réalisées afin de pouvoir :

restaurer la totalité d'un système en état de fonctionnement suite à un incident (disque

en panne, feu, …) ;

restaurer une partie du système (un fichier ou un répertoire) suite à une fausse

manipulation telle qu’une suppression accidentelle d'un fichier de configuration.

21

Page 22: Maintenance du système Linux

2-types de sauvegarde :

Les sauvegardes sont de trois types :

sauvegarde complète : consiste à sauvegarder la totalité du système.

sauvegarde différentielle : consiste à ne sauvegarder que les fichiers modifiés en se

référant à une sauvegarde complète précédemment effectuée.

sauvegarde incrémentale : consiste à ne sauvegarder que les fichiers modifiés depuisla

dernière sauvegarde.

22

Page 23: Maintenance du système Linux

3-Utilitaires de sauvegarde :

Commande mt :

La commande mt contrôle une bande magnétique.

Syntaxe :

Avec :

périphérique : le lecteur de la bande, par défaut c'est /dev/tape

parmi les opérations possibles :

rewind : rembobiner ;

status : afficher l'état de la bande ;

erase : effacer la bande ;

offline : embobiner et éjecter ;

fsf [n] : avancer de n fichiers ;

bsf [n] : reculer de n fichiers.

23

mt [-f périphérique] opération

Page 24: Maintenance du système Linux

Commande tar :

La commande tar sauvegarde des fichiers et des répertoires .

Syntaxe :

Avec :

-c, --create : crée une archive ;

-x, --extract : extrait une archive ;

-t, --list : liste tous les fichiers de l'archive ;

-f, --file Fichier : précise le fichier archive qui peut être un fichier ordinaire ou un

périphérique ;

-z, --gzip : (dé)compacte l'archive tar avec gzip ;

-j, --bzip2 : (dé)compacte l'archive tar avec bzip2 ;

-M, --multi-volume : crée une archive tar multivolumes ;

-v, --verbose : active le mode d'affichage détaillé.

24

tar cvf nom_archive Fichier

Page 25: Maintenance du système Linux

Commande cpio :

La commande cpio sauvegarde sur la sortie standard les fichiers dont les noms sont

fournis par l'entrée standard.

Syntaxe :

Avec :

-i : extrait les fichiers de l'archive ;

-o : crée une archive ;

-t : affiche une table du contenu de l'entrée ;

-B : utilise une taille de bloc d'entrée/sortie de 5120 octets ;

-c : utilise un vieux format d'archive portable ;

-v : active le mode d'affichage détaillé.

25

cpio -option

Page 26: Maintenance du système Linux

Utilitaire rsync :

rsync (remote synchronization) est un utilitaire de synchronisation de fichiers entre l’hôte

local et un hôte distant.

Syntaxe :

Avec :

-v : active le mode d'affichage détaillé ;

-a : active le mode archive, identique à -rlptgoD ;

-z : compresse les données à envoyer ;

-e commande : spécifie un shell distant ;

-n : simule le fonctionnement de la commande ;

--delete : supprime les fichiers qui n'existent pas sur l’hôte émetteur.

26

rsync -option

Page 27: Maintenance du système Linux

Commandes dump :

La commande dump sauvegarde un système de fichiers de type Ext2/Ext3.

Syntaxe :

Avec :

-Niveau : spécifie le niveau de l'archive. La valeur 0 précise une sauvegarde complète,une valeur différente de 0 précise une sauvegarde incrémentale ;

-u : mise à jour du fichier dumpdates ;

-f fichier : spécifie le fichier archive. Par défaut c'est /dev/st0. La valeur « - » est

utilisée pour la sortie standard ;

-L étiquette : ajoute une étiquette dans l'en-tête de l'archive ;

-A fichier : crée un fichier contenant la liste des fichiers de l'archive.

27

dump -option

Page 28: Maintenance du système Linux

Commande restore :

La commande restore extrait des fichiers, des répertoires ou la totalité du système de

fichiers d'une archive créée par dump.

Syntaxe :

Avec :

-i : lance la commande en mode interactif ;

-f fichier : spécifie le fichier archive ;

-r : extrait le contenu de toute l'archive dans le répertoire courant ;

-t : liste le contenu du fichier archive.

28

restore -option

Page 29: Maintenance du système Linux

Commande dd

La commande dd permet de faire une copie bloc par bloc. Elle est adaptée pour la

duplication des périphériques de stockage tels qu'un disque, une partition, etc.

Syntaxe :

Avec :

if : spécifie le fichier source, par défaut c'est le fichier entrée standard ;

of : spécifie le fichier destination, par défaut c'est le fichier sortie standard ;

bs : spécifie la taille des blocs, par défaut c'est 512 octets ;

count : spécifie le nombre de blocs à copier, par défaut c'est autant de blocs qu’en

contient fichier-entrée.

dd if=fichier-entrée of=fichier-sortie bs=taille count=nb

29

Page 30: Maintenance du système Linux

4-Solutions de sauvegarde :

Les solutions de sauvegarde gèrent les opérations de sauvegarde, de restauration et de

vérification de données de différents systèmes tels que Linux, MacOS, Windows, etc. Elles

fonctionnent en réseau selon le modèle client/serveur en utilisant des protocoles de

transfert de fichiers tels que NFS, SSH, SMB, etc.

Ces solutions sont relativement faciles à utiliser, efficaces et offrent de nombreuses

fonctions avancées de gestion de sauvegarde.

Bacula, Amanda et BackupPC sont des solutions de sauvegarde libres distribuées sous

licence GPL. Elles sont considérées comme des alternatives viables aux solutions de

sauvegarde propriétaires.

30