Vous êtes sur la page 1sur 89

BTS Services informatiques aux organisations – 2e année

ADMINISTRATION DES SYSTÈMES


COURS

BTS Services informatiques aux organisations – 2e année

Julien Grandidier – Alain Tarlowski

ADMINISTRATION
DES SYSTÈMES
COURS
Retrouvez la liste de nos formations sur www.cned.fr
Pour plus d’informations, appelez le 05 49 49 94 94
Du lundi au vendredi, 8 h 30-18 h.
Coût d’une communication ordinaire.

*8014273* 8 2953 TG PA 00 15
www.cned.fr
BTS Services informatiques aux organisations – 2e année
Spécialité Solutions d’infrastructure, systèmes et réseaux

ADMINISTRATION
DES SYSTÈMES
Julien Grandidier – Alain Tarlowski
Sommaire
Conseils généraux 3
Séquence 1 : Préparation à l'installation des Serveurs (gestion des disques) 5
Séquence 2 : Les journaux d'événements ou logs 17
Séquence 3 : Planification des tâches et Scripting avancé 23
Séquence 4 : Gestion des performances 49
Séquence 5 : Continuité de service : haute disponibilité 55
Séquence 6 : Sécurité des accès + Accès distant 65
Séquence 7 : Dépannage 81

CONNECTÉ À VOTRE AVENIR

Les cours du CNED sont strictement réservés à l’usage privé de leurs destinataires et ne sont pas destinés à une utilisation collective.
Les personnes qui s’en serviraient pour d’autres usages, qui en feraient une reproduction intégrale ou partielle, une traduction sans
le consentement du CNED, s’exposeraient à des poursuites judiciaires et aux sanctions pénales prévues par le Code de la propriété
intellectuelle. Les reproductions par reprographie de livres et de périodiques protégés contenues dans cet ouvrage sont effectuées
par le CNED avec l’autorisation du Centre français d’exploitation du droit de copie (20, rue des Grands Augustins, 75006 Paris).

© CNED 2015
Conseils généraux

Quel est l'objectif de ce module ?


Ce module a été mis en place afin de vous aider à vous spécialiser dans le domaine de
l'administration des systèmes. Vous y trouverez de nombreux outils et concepts afin de
vous permettre de mettre en production des serveurs, de les contrôler en toute sécurité,
notamment à distance, de veiller à leur disponibilité ainsi que d'analyser tout ce qui
touche à votre serveur (journaux, métrologie…).
Vous y reverrez certains concepts déjà abordés en première année mais ce module vous
les détaillera, afin que vous soyez capables de les mettre en application dans des envi-
ronnements réels de production.

Quel est le programme ?


À travers ce support, vous allez acquérir les savoir-faire et savoirs suivants :

Savoir-faire
• Justifier le choix d'une solution de mise en production d'un système.
• Justifier le choix d'une solution de gestion de la disponibilité d'un serveur.
• Installer et configurer une solution de disponibilité de serveurs.
• Installer et configurer une solution d'administration sécurisée à distance du système
d'un serveur et d'une solution technique d'accès.
• Sécuriser un serveur et une solution technique d'accès.
• Administrer un système.
Page 3
• Contrôler et améliorer les performances d'un système.
• Automatiser une tâche d'administration.
• Valider et documenter une solution.

Savoirs associés
• Mise en production, méthodes, technologies, techniques, normes et standards associés
• Disponibilité des systèmes, méthodes, technologies, techniques, normes et stan-
dards associés
• Sécurité des systèmes, méthodes, technologies, techniques, normes et standards
associés
• Langage de commande et scripting

8 2953 TG PA 00
Séquence 1
Préparation à l'installation des
serveurs (gestion des disques)
Ça y est c'est décidé, aujourd'hui sera le grand jour où vous allez mettre en
place un serveur de données. Mais attention, avant de dégainer votre cd
d'installation et de vous précipiter sur l'ordinateur, calmez-vous un instant
et posez-vous les bonnes questions. En effet, la mise en place d'un serveur
ne s'improvise pas et vous risquez de payer plus tard très cher les erreurs
de conception. L'une des premières étapes consiste à bien préparer le sup-
port qui stockera toutes les données nécessaires à votre serveur. C'est ce
que nous allons essayer de mettre en évidence à travers cette première
séquence à savoir " Comment gérer efficacement la machine avant même
l'installation du système d'exploitation ".

u Durée indicative : 4 heures

u Capacités attendues en fin de séquence


•C  onnaître et comprendre les technologies permettant de gérer les disques et
les données afin de les utiliser conformément à nos besoins.
• Être capable de proposer une base préparatoire solide pour l'installation de
Page 5
serveurs.

u Contenu
1. Le Raid ou comment améliorer la sécurité .............................................................. 6
2. Le système de Fichiers (FS, File System).................................................................. 13
3. Le SWAP ou comment avoir une mémoire d'éléphant...................................... 15

8 2953 TG PA 00
1. Le Raid ou comment améliorer la sécurité
de votre stockage de données à moindre coût
1A. Objectifs du RAID
Lorsque l'on souhaite mettre en place un serveur professionnel, on est en droit d'attendre
certaines exigences en termes de sécurité et de performances pour les données stockées.
Une façon courante d'améliorer ces deux aspects est d'utiliser des disques durs en RAID. Le
RAID (Redundant Array of Inexpensive Disks) permet d'agglomérer logiquement plusieurs
disques physiques (on parlera de grappe Raid). On utilise ainsi plusieurs disques physiques,
qui forment ce que l'on appelle une grappe RAID, couplés avec un pilote (logiciel) afin de
faire croire au système, de manière logique, que la " grappe RAID " n'est en fait qu'un seul
et même disque physique. Tout cela afin d'obtenir :
• une capacité de stockage plus grande ;
• une plus grande fiabilité des données ;
• des performances accrues en écriture et en lecture, et tout cela pour un coût relati-
vement faible en comparaison des services rendus.
Pour fonctionner, le RAID a besoin d'un contrôleur dédié. Ce contrôleur prend la plupart
du temps la forme d'une carte externe comportant des connecteurs afin d'y brancher les
disques durs qui fonctionneront en RAID. Ces cartes sont réservées au monde profession-
nel de par leur prix et leurs caractéristiques.
Séquence 1

Préparation
à l'installation
des serveurs

Page 6

Fort heureusement, il existe aussi des solutions hybrides permettant au grand public
d'expérimenter le Raid. En effet, désormais la plupart des cartes mères intègrent une
puce permettant de gérer de manière " logiciel " le Raid. De son côté, Linux permet lui
aussi de gérer nativement le Raid de manière logicielle. Bien sur, les performances et la
fiabilité ne peuvent rivaliser avec les cartes dédiées car ce sont alors le processeur et le
contrôleur qui doivent gérer le RAID.

8 2953 TG PA 00
1B. Les différents types de RAID
1B1. Le Raid 0 (striping)
Ce mode nécessite à minima deux disques. Ils formeront un seul volume logique. Chaque
opération de lecture et d'écriture sera fractionnée sur chacun des disques. Ce mode est
surtout utilisé pour effectuer rapidement de grandes quantités de calculs ou d'opéra-
tions transitoires (calculs scientifiques, montage vidéo) mais pas pour stocker sur le long
terme des données critiques (archivage de documents par exemple). En effet, ce mode
permet d'améliorer grandement la vitesse de transfert, aussi bien en lecture qu'en écri-
ture. Le fait de faire fonctionner de concert plusieurs disques permet de répartir l'effort
sur l'ensemble des disques composant la grappe. Ainsi si vous utilisez " N " disques,
chaque disque ne devra écrire (ou lire) que " 1/N*taille_du_fichier "
Prenons un exemple avec 3 disques pour un fichier de 9 Mo. Au final, chaque disque
n'écrira que 1/3*9 Mo soit 3 Mo au lieu de 9 Mo. Ici on mettra donc 3 fois moins de temps
pour écrire le fichier.
On peut donc dire que (en théorie) le Raid 0 permet d'être " N " fois plus rapide qu'un
disque utilisé individuellement ("N” étant le nombre de disques). Bien sûr le gain réel
est moindre avec de nombreux facteurs entrant en jeu comme la vitesse des disques, les
limites de transfert du périphérique raid, etc.
Allez un petit schéma pour finir ce paragraphe. Nous supposons que nous disposons
de 2 disques durs ayant respectivement pour taille 100 Go et 200 Go. Nous disposons Séquence 1
donc d'un disque logique de 200 Go. En effet, on doit s'aligner sur la taille du plus petit
disque. Cela fonctionne donc comme si nous disposions de 2 disques de 100 Go chacun. Préparation
à l'installation
des serveurs

Page 7

8 2953 TG PA 00
Avec la grappe RAID 0 de notre schéma ci-dessus, le système voit un disque logique
d'une taille totale de 200 Go (100+100). On ne peut donc utiliser l'intégralité de l'espace
disque du disque physique 2 utilisé pour stocker des données car les blocs de données
sont répartis sur l'ensemble des disques.

Séquence 1

Préparation
à l'installation
En conclusion sur le RAID 0, tout l'espace disque est disponible pour les données dans le
des serveurs
cas des disques de même taille et ce mode est donc peu coûteux. En contrepartie le pro-
Page 8 blème de la sécurité des données est aggravé ici. En effet, si un seul disque de la grappe
venait à dysfonctionner, on perdrait l'ensemble des données stockées sur la grappe. On
n'a donc aucune tolérance de panne.

1B2. Le Raid 1 (mirroring)


Le but du mode RAID 1 est principalement d'assurer la sécurité des données. Ce mode
fonctionne aussi avec 2 disques au minimum. Les disques additionnels (disque n°2, N°3…)
ne seront que des copies du disque initial (disque n°1 ). Ce mode insiste donc sur la
tolérance de panne et la sécurité des informations. Les performances seront aussi légè-
rement supérieures à un disque seul, en lecture.
Il est également possible d'adjoindre à la grappe RAID 1, un disque de rechange, appelé
disque " Spare ". Celui-ci est un disque vierge de secours utilisé lorsqu'un disque de la
grappe tombe en panne. Le disque " spare " remplacera automatiquement le disque
défaillant et la reconstruction RAID pourra se faire sans intervention humaine. On écrira
sur le disque " spare " le contenu de la grappe RAID. Les données étant identiques sur
chacun des disques dans ce mode, cela permet d'être plus réactif lors d'une panne. Ainsi,
même s'il n'y a personne physiquement pour remplacer le disque défectueux, le disque
" spare " prend le relais. Il suffira ensuite de venir enlever le disque en panne et le rem-
placer par un nouveau disque qui deviendra alors le nouveau " spare ". Ce disque est
optionnel : on peut n'avoir aucun disque en " spare " ou bien 2 ou plus. Tout dépend du
budget et de l'impératif de sécurité.

8 2953 TG PA 00
Ne perdons pas les bonnes habitudes et faisons un petit schéma avec 3 disques dans la
grappe RAID 1 + un disque " Spare ".

Séquence 1

Préparation
à l'installation
Par rapport à ce schéma, le système voit un disque logique d'une taille de 100 Go qui
des serveurs
correspond à la taille du plus petit des disques de la grappe. Les disques 2 et 3 ne sont
que des copies du disque 1. Le disque " Spare " ne sera utilisé qu'en cas de panne de l'un Page 9
des 3 disques de la grappe.

Rappel : le disque 1 représente le disque principal. Les disques 2 et 3 ne sont que des
copies du contenu du disque 1. Le Spare reste vide tant qu'il n'y a pas de disque défec-
tueux. Imaginons maintenant que le disque 1 tombe en panne. Le disque " Spare " pren-
dra le relais et rejoindra la grappe. Le contrôleur commencera à recopier les données sur

8 2953 TG PA 00
le " Spare " qui deviendra le nouveau disque 1. L'ancien disque 1 défectueux est sorti de
la grappe. Il suffira de le remplacer par un nouveau disque " Spare " pour retrouver un
mode de fonctionnement identique à ce que l'on avait avant la panne. D'un point de vue
utilisateur, à part un léger ralentissement dû à la reconstruction, rien ne sera perceptible.
Ce mode permet d'avoir une grande tolérance de panne mais son coût reste prohibitif :
l'espace disque disponible sera limité au disque initial (au plus petit dans le cas de
disques de tailles différentes. Tous les disques additionnels ne rajouteront aucun espace
supplémentaire.

1B3. Le RAID 5
Le mode RAID 5 nécessite au minimum 3 disques. Les données seront réparties sur
l'ensemble des disques comme sur le RAID 0, mais afin d'ajouter une couche de sécurité,
ce mode va utiliser la " parité " afin de pouvoir reconstruire facilement les données per-
dues en cas de défaillance d'un des disques de la grappe. Les données et les parités sont
réparties sur l'ensemble de la grappe.
Arrêtons-nous un instant sur cette notion de " parité ". Je vous rassure, cela n'a rien
de politique. Cette notion permet tout simplement à partir de deux valeurs connues
de déduire la valeur d'une troisième via un calcul prédéfini. Dans le cadre du RAID 5, la
parité est le résultat d'un " OU EXCLUSIF ", également appelé " XOR ", entre les données
des blocs des différents disques. Pour expliquer au mieux ce fonctionnement relative-
ment complexe de la parité, nous allons emprunter un exemple de raisonnement issu du
Séquence 1 fonctionnement des équations du premier degré. Attention ce qui nous intéresse dans
ce qui va suivre, c'est le raisonnement permettant de déduire une valeur à partir de 2
Préparation
à l'installation
autres et pas le fonctionnement des équations du premier dégrée.
des serveurs
Entrons dans le vif de notre démonstration. Supposons que nous disposons de 2 valeurs
dénommées respectivement A1 et B1, avec A1 = 2 et B1=7, et que la parité utilisée réponde
Page 10
au calcul " A1+B1 ". Ainsi par rapport à nos deux valeurs A1 et B1, la valeur de parité
de (A1+B1) sera de (2+7)=9. Imaginons maintenant que A1 soit stocké sur le disque n°1,
que B1 soit stocké sur le disque n°2 et que la valeur de la parité (A1 +B1) soit stockée sur
le disque n°3. Zut, un problème survient sur notre disque n°2 et malheureusement nous
venons de perdre ce dernier et tout ce qu'il contient. Dans le cadre du RAID 5, ce n'est pas
grave car il nous reste d'une part A1 et d'autre part la valeur de parité " A1+B1 " stockés
sur les deux autres disques. Nous pouvons donc en déduire que : 2 + B1 = 9.
Il devient alors facile de retrouver B1 qui vaut (9-2) c'est-à-dire 7. Vous voyez ce n'est pas
compliquer de reconstruire les valeurs d'un disque à partir des valeurs des deux autres
et du calcul de parité.
Rappel : dans le cadre du RAID 5, la parité est le résultat d'un " OU EXCLUSIF ", égale-
ment appelé " XOR ", entre les données des blocs des différents disques. Je sais, je sais,
vous attendez un petit schéma concernant le RAID 5. Alors le voici avec 3 disques dans
la grappe RAID 5 + un disque " Spare ".

8 2953 TG PA 00
Séquence 1

Par rapport à ce schéma, le système voit un disque logique d'une taille totale de 200 Go Préparation
(100+100+100-100). En effet, avec 3 disques, un disque est perdu pour gérer la parité et à l'installation
le disque " Spare " n'est là que pour faciliter la reprise sur incident. des serveurs

Page 11

A partir de cette exemple, nous voyons que si l'on perd le disque 2, on perd automatiquement
À données
les partir dedescetblocs
exemple, nous
B1 et B3 voyons
ainsi que la que
paritési issue
l'on des
perdblocs
le disque
A2 et C2.2, on perd automati-
Cependant, on voit
également que, grâce à la notion RAID 5, la reconstruction du disque 2 sera facilementA2
quement les données des blocs B1 et B3 ainsi que la parité issue des blocs et C2.
recalcu-
lée à partir deson
Cependant, disques 1 et 3. Ainsi
voit également B1 grâce
que, sera reconstruit
à la notion grâce
RAIDà 5,A1laetreconstruction
la parité de (A1+B1), B3
du disque
sera reconstruit
2 sera facilementà partir de parité
recalculée de (B3+C3)
à partir et de C3
des disques 1 etet3.laAinsi
paritéB1(A2+C2) sera reconstruite
sera reconstruit grâce à
avec
A1 etA2laet C2. Cette
parité reconstruction
de (A1+B1), comme vousà partir
B3 sera reconstruit lʼavez de
devinez
paritésedefait à lʼaide
(B3+C3) du C3
et de disque
et la
« Spare ». Cela ne veut pas dire que le disque « Spare » est obligatoire mais il permet de réali-
parité (A2+C2) sera reconstruite avec A2 et C2. Cette reconstruction comme vous l'avez
ser lʼopération de reconstruction sans intervention humaine. Sʼil nʼy a pas de disque « Spare »
devinez
est se fait
bien il faut à l'aide
juste croire du
en disque " Spare
votre bonne ". et
étoile Cela ne veut
espérer pas dire
quʼaucun que additionnel
disque le disque "neSpare
tom-"
bera en panne avant le remplacement du disque défectueux et sa reconstruction. Séquence 1
Le mode RAID 5 permet donc de combiner de très bonnes performances en écriture et lecture
(proches du Raid 0) tout en supportant la perte d'un disque. On l'utilise souvent dans le cas de Préparation à
l'installation
petits fichiers (par exemple : pour certaines bases de données qui utilisent un fichier par table). des Serveurs
1B4. Les modes « hybrides » 8 2953 TG PA 00
Les modes « hybrides » sont Raid 10 (1+0) et Raid 01 (0+1). Ces modes permettent de faire un Page 11
RAID 0 de RAID 1 (1+0) ou un RAID 1 de RAID 0 (0+1). Heu, je crois que je vous ai perdu.
est obligatoire mais il permet de réaliser l'opération de reconstruction sans intervention
humaine. S'il n'y a pas de disque " Spare " eh bien il faut juste croire en votre bonne
étoile et espérer qu'aucun disque additionnel ne tombera en panne avant le remplace-
ment du disque défectueux et sa reconstruction.
Le mode RAID 5 permet donc de combiner de très bonnes performances en écriture et
lecture (proches du Raid 0) tout en supportant la perte d'un disque. On l'utilise souvent
dans le cas de petits fichiers (par exemple : pour certaines bases de données qui utilisent
un fichier par table).

1B4. Les modes " hybrides "


Les modes " hybrides " sont Raid 10 (1+0) et Raid 01 (0+1). Ces modes permettent de
faire un RAID 0 de RAID 1 (1+0) ou un RAID 1 de RAID 0 (0+1). Heu, je crois que je vous
ai perdu.
Alors voyons tout cela avec un schéma :

Séquence 1

Préparation
à l'installation
des serveurs

Page 12

Dans cet exemple ci-dessus, nous avons deux grappes de Raid 0 qui fonctionnent en
miroir (RAID 1).

8 2953 TG PA 00
Dans cet autre exemple ci-dessus, nous avons deux grappes de RAID 1 qui fonctionnent
en RAID 0.
L'intérêt est donc combiner la vitesse du Raid 0 avec la fiabilité du Raid 1.

1B5. Récapitulons tout ça à l'aide d'un tableau


Raid 0 raid 1 Raid 5 Raid 01 Raid 10
Nombre de disque 4 (nombre de 4 (nombre de
2 2 3
minimum disques pair) disques pair)
Rapidité en lecture (par
rapport à un disque Très rapide Rapide Très rapide Rapide Rapide
simple)
Rapidité en écriture (par
rapport à un disque Très rapide Rapide Très rapide Rapide Rapide
simple)
Espace disque utilisable
(pour N disques composant
N*C C (N-1)*C (N/2)*C (N/2)*C
le grappe, et C la capacité
du plus petit disque)
Nombre de disques
pouvant être défectueux
sans perte de données 0 N-1 1
(pour N disques
composants le grappe)
Part d'espace perdu en
fonction du nombre N de 0% 1-1/N 1/N Séquence 1
disques
Préparation
Traduisons ce tableau à travers un exemple. On considère que nous disposons d'une à l'installation
des serveurs
grappe de 4 disques de 250 Go chacun soit un total de 1 To (4*250 Go = 1000 Go pour
ceux qui dormaient là au fond).
Page 13
Raid 0 raid 1 Raid 5 Raid 01 Raid 10
1000 Go 750 Go 500 Go 500 Go
Espace disque utilisable 250 Go
(4*250 Go) ((4-1)*250 Go) ((4/2)*250 Go) ((4/2)*250 Go)
Nombre de disques ? = Dépend du ? = Dépend du
pouvant être défectueux 0 4-1 = 3 1 disque disque
sans perte de données défectueux défectueux
Part d'espace perdu en ? = Dépend du ? = Dépend du
fonction du nombre N de 0% (1-1/4) = 75% ¼ = 25% disque disque
disques défectueux défectueux

2. Le système de Fichiers (FS, File System)


Un système de fichiers, également appelé " File System " en anglais ou FS, est un méca-
nisme qui vous permet de stocker vos données sur vos disques durs (ou d'autres péri-
phériques tels que clés USB, cdrom, etc) et de les organiser dans des fichiers. En fait,
Il existe plusieurs façons d'organiser ce stockage, chacune ayant ses avantages et ses
inconvénients.
Les plus connues et les plus utilisées sont Fat16, FAT32, vfat ou encore NTFS pour les
systèmes de fichiers Windows, ou encore ext2, ext3 ou bien le tout récent ext4 pour les
systèmes de fichiers Linux mais vous connaissez aussi sûrement l'iso9660 que l'on utilise
sur les cdrom.

8 2953 TG PA 00
En résumé, à vous de bien choisir le FileSystem que vous allez utilisez. Voici quelques axes
de réflexion par rapport à ce choix.
• Quelle longueur de noms de fichiers est-il capable de gérer ?
• Le FS est-il plus à l'aise avec de nombreux petits fichiers ? Ou au contraire traîte-t-il
plus efficacement les très gros fichiers (plusieurs Go voire plusieurs dizaines de Go) ?
• Le FS gère-t-il la journalisation ? (Permet de garder une trace des écritures à faire
jusqu'à leur terme, afin de garantir l'intégrité des données en cas de panne).
Il est évident que votre choix sera restreint en fonction de l'architecture utilisée (Linux,
Unix, Windows, AIX, HP-UX, OpenSolaris…). Votre choix de type de système de fichiers
est donc très important pour le bon fonctionnement de votre serveur. Toute l'organisa-
tion de vos fichiers dépendra de votre choix.
Pour répondre à toutes ces questions rien ne vaut une bonne planification.
• Quels sont mes besoins ? En termes de puissance de calcul, d'espace de stockage ?
• Le serveur sera-il critique pour l'organisation ?
• Bref on réfléchit et on ne se précipite pas ! Cela vous fera gagner énormément de
temps lorsque les problèmes surgiront (ne vous inquiétez pas, ce n'est qu'une ques-
tion de temps...).
Avant de conclure ce paragraphe, voici un tableau récapitulatif sur les différents FS :
du nom d'un fichier

casse (minuscules/
Taille Maximale

Taille Maximale

Taille Maximale

Journalisation
d'un Volume

Sensible à la
d'un Fichier

majuscules)

Robustesse
Nom de FS

(d'origine)
OS Natifs

Séquence 1

Rapidité
Année

Préparation
à l'installation
des serveurs

Page 14 8.3 (8 caractères + Lent


3 pour l'extension (grands volumes)
FAT 16 DOS 3.0 1984 2 GB 2 GB NON NON Mauvaise
en Standard) ou 255 Rapide
caractères (étendue) (petits volumes)
Win98, Lent
WinME, 8.3 (Standard) ou 255 (grands volumes)
FAT 32 1996 4 GB 2 TB NON NON Mauvaise
Win2000, caractères (étendue) Rapide
WinXP (petits volumes)
Lent
WinNT,
256 (grands volumes)
NTFS Win2000, 1993 16 TB 255 caractères OUI NON Mauvaise
TB Rapide
WinXP
(petits volumes)
EXT2 Linux 1993 2 TB 32 TB 255 octets OUI NON Rapide Moyenne
EXT3 Linux 1999 2 TB 32 TB 255 octets OUI OUI Moyen Moyenne
EXT4 Linux 2006 16 TB 1 EB 255 octets OUI OUI Très Rapide Bonne
XFS Linux 1994 8 EB 8 EB 255 octets OUI OUI Très Rapide Moyenne
JFS OS/2 1999 4 PB 32 PB 255 octets OUI NON Moyen Bonne
Windows 2012-
ReFS 16 EB 16 EB 32k unicode OUI OUI ? ?
Server 8 2013 ?

8 2953 TG PA 00
3. Le SWAP ou comment avoir une mémoire d'éléphant
Votre serveur, comme tout ordinateur, possède une certaine quantité de mémoire vive.
Cette mémoire vive sera partagée et utilisée par les nombreux processus et services qui
tourneront dessus. Mais que se passe-t-il lorsqu'il n'y a plus de mémoire vive disponible ?
Eh bien vous risquez de voire votre belle machine " planter " ! Cela n'est pas l'idéal, vous
en conviendrez aisément. C'est pour cela que l'on a mis au point le SWAP.
En fait, le SWAP permet d'utiliser de l'espace sur disque pour créer une zone de mémoire
virtuelle. Cette mémoire virtuelle pourra être utilisée au cas où un processus ne dispo-
serait pas de suffisamment de mémoire pour fonctionner. Bien évidemment, un disque
dur étant BEAUCOUP plus lent que la mémoire vive, vous risquez d'avoir un ralentisse-
ment sensible dès lors qu'une application nécessite l'utilisation du SWAP, mais cela sera
toujours mieux qu'un blocage de la machine ou du processus. Quelle est la taille idéale
pour le SWAP ?
On a souvent coutume de dire que la taille idéale doit se situer entre 1 à 2 fois la quan-
tité de mémoire vive présente sur le serveur, donc pour un serveur disposant de 8 Go de
RAM, il faudrait utiliser entre 8 et 16 Go d'espace disque pour le SWAP. Cette taille n'est
donnée qu'à titre indicatif, cela sera de votre ressort de l'adapter au plus proche de vos
besoins, en fonction de vos processus. Mais cela fournit une base acceptable.
Sous Linux on créera une partition swap avec la commande " mkswap " et on l'activera
avec la commande " swapon ". Voici des exemples d'utilisation de ces commandes :
Séquence 1
mkswap /dev/sda3
Préparation
Ú Création et formatage du swap sur sda3 (3ème partition du disque sda) à l'installation
swapon /dev/sda3 des serveurs

Ú Activation du swap sur sda3 (3ème partition du disque sda)


Page 15
Remarque : nous aurons l'occasion de voir cela plus en détail dans les TP.
Sous Windows, le swap est stocké dans le fichier " pagefile.sys ". On pourra le régler
graphiquement en passant par le menu " Paramètres Systèmes Avancés " et " Options
de Performances ".

8 2953 TG PA 00
Séquence 2
Les journaux d'événements ou
logs
Administrer un système nécessite d'être au courant de tous les événements
le concernant. On y trouve d'une part ceux prévus et attendus et d'autre
part les (mauvaises) surprises. Dans cette séquence, nous allons donc voir
ensemble comment connaître tout ce qui se passe sur notre serveur adoré.
Non, non, ce n'est pas de l'espionnage mais du bon sens.

u Durée indicative : 2 heures

u Capacités attendues en fin de séquence


•C  omprendre les enjeux de l'utilisation des journaux d'événements.
• Savoir utiliser à bon escient les différentes catégories d'information des Logs,
sous Windows et sous Linux.

u Contenu
1. Quel est l'intérêt des journaux d'événements ?.................................................. 18
2. Les journaux d'événements sous Windows.......................................................... 18
Page 17
3. Les journaux d'événements sous Linux.................................................................. 20
Conclusion........................................................................................................................ 22

8 2953 TG PA 00
1. Quel est l'intérêt des journaux d'événements ?
Vous avez certainement déjà entendu parler des journaux d'événements également
appelés " Fichiers de Logs ". Vous y avez alors prêté peu d'attention car vous n'en aviez
pas forcément l'utilité ou vous avez essayé de voir à quoi cela peut correspondre dans la
littérature informatique ou sur Internet. En fait, ces fichiers de logs sont extrêmement
importants par rapport au métier que vous souhaitez exercer. En effet, une part non
négligeable du travail d'administrateur système consiste à s'assurer que les serveurs qui
sont sa responsabilité fonctionnent correctement. Comme un administrateur ne peut pas
être 24 h/24, 7 j/7 derrière ses serveurs, il doit déléguer son travail à certaines applications
qui vont enregistrer les événements qui vont survenir, des plus graves aux plus anecdo-
tiques. Il suffira alors ensuite de consulter les journaux d'événements (fichiers de Logs)
afin d'analyser les problèmes et réagir le plus rapidement possible en leur apportant une
solution. Il existe des journaux d'événements dans les différents systèmes d'exploitation.

2. Les journaux d'événements sous Windows


Sous Windows, différents journaux existent et permettent de suivre au mieux les diffé-
rents événements qui se produisent sur la machine. En voici la liste :
• Journal des Applications : enregistre les événements concernant les applications et
autres programmes. Ce sont les développeurs qui décident quels événements seront
Séquence 2 inscrits dans le journal.
• Journal de sécurité : enregistre les événements tels que les tentatives de connexion,
Les journaux
d'événements les ouvertures de session réussies ou non, l'ouverture et la suppression de fichiers.
ou logs Il est de la responsabilité de l'administrateur de décider les événements qui seront
enregistrés.
Page 18 • Journal du programme d'installation : enregistre toutes les informations concer-
nant l'installation d'applications.
• Journal système : enregistre les événements du système Windows : problème avec
des pilotes au démarrage, erreur d'un composant Windows, etc. Windows gère
quels sont les événements à enregistrer.
• Journal Événements Transférés : permet de stocker les événements émanant d'ordi-
nateurs distants. Pour cela vous devez créer un abonnement aux événements.
• Journal des applications et des services : ici seront enregistrés les événements qui
sont issus d'une application isolée, qui ne peut avoir un impact sur le système dans
son ensemble.

8 2953 TG PA 00
On peut accéder à ces différents journaux en exécutant le programme " eventvwr.exe ".
Nous obtenons alors l'écran suivant :

Séquence 2

Les
journaux
d'événements
ou logs

Page 19

8 2953 TG PA 00
3. Les journaux d'événements sous Linux
Sous Linux, c'est le daemon " syslogd " qui dirige les différents messages d'erreur.
L'administrateur peut configurer le fichier " /etc/syslogd.conf " afin de décider où seront
redistribuer les messages d'erreurs : vers la console, une application, un fichier…
Les messages d'erreurs proviennent d'un sous-système et chaque application est associée
à un sous-système. Ces sous-systèmes sont :
• auth : messages de sécurité / authentification ;
• cron : messages des daemon " cron " et " at " ;
• daemon : messages d'un daemon du système ;
• ftp : message du daemon " ftp " ;
• kern : messages du noyau ;
• lpr : messages du sous-système d'impression ;
• mail : message du sous-système de courrier ;
• news : messages du sous-système de news ;
• syslog : messages internes de " syslog " ;
• user : messages utilisateur générique ;
• uucp : messages des programmes en rapport avec " UUCP " (Unix to Unix Copy
Protocol) ;
• local0 à local7 : utilisés par les applications n'entrant pas dans les catégories précé
Séquence 2 entes.

Les journaux Les messages sont accessibles par niveau de priorité. Il en existe 8 ; 9 en réalité mais le
d'événements niveau 8 est spécial, organisés par ordre de priorité décroissante (0 le plus prioritaire, 7
ou logs le moins) :

Page 20 Prioirité NIveau Explication


0 Emerg Emergency : Le système est inutilisable
1 Alert Erreurs nécessitant une intervention immédiate
2 Crit Critical : Erreurs critiques du système
3 Err Error : Erreurs
4 Warn Warning : Avertissements
5 Notice Messages qui ne sont pas des erreurs mais qui méritent tout de même d'être signalés
6 Info Seulement pour information
7 Debug Informations concernant le débogage d'un programme
8 None Permet de désactiver les messages associés

Voyons maintenant la syntaxe permettant de configurer le fichier " syslog.conf " donc
nous avons parlé plus haut. En fait, chaque ligne correspond à une source de messages
que l'on sépare par " ; " et la destination souhaitée (en chemin absolu c'est-à-dire décrit
à partir de la racine de l'arborescence).
Une source peut avoir 3 formes :
• sous-système.Priorité : on n'enregistre que les messages de priorité égale ou supé-
rieur à la priorité indiquée.
Exemple : " mail.err " : redirige les message d'erreur de mail de niveau err ou supé-
rieur (err, crit, alert et emerg) ;

8 2953 TG PA 00
• sous-système.!Priorité : on n'enregistre que les messages de priorité inférieure à la
priorité indiquée.
Exemple : " kern.!err " : redirige les message d'erreur de kern de niveau inférieur à
err (warn, notice, info,debug) ;
• sous-système.=Priorité : on n'enregistre que les messages de priorité égale à la
priorité indiquée.
Exemple : " mail.=info " : redirige uniquement les messages d'erreur de mail de
niveau info.
La destination est normalement un fichier, par exemple /var/log/admin/mail ou tout
autre fichier approprié :
mail.err /var/log/admin/mail
Remarque : attention à bien écrire le chemin en chemin absolu !
Il est également possible d'utiliser le terminal d'un hôte précis comme destinataire du
message, par exemple " Julien " :
mail.err Julien
On peut aussi désigner l'ensemble des utilisateurs connectés grâce à " * " :
mail.err *
Ou encore indiquer un autre ordinateur grâce à " @ " :
mail.err @FCSecu Séquence 2

Vous avez compris ? Alors essayons ensemble. Comment pouvez-vous dire que vous Les
voulez écrire tous les messages critiques dans /var/log/admin/critical, sans enregistrer les journaux
d'événements
messages du noyau ? ou logs

Page 21
Réponse : *.crit;kern.none /varl/log/admin/critical

Compris ? Allez encore une pour la route. Comment enregistrer les messages du noyau
qui ont une priorité entre info et warning uniquement dans /var/log/admin/kernel ?

Réponse : kern.info;kern.!err /var/log/admin/kernel

Un autre exercice ? Ah vous y prenez goût ! Alors le voici . Comment rediriger l'ensemble
des messages vers une machine distante du nom de " travis " ?

Réponse : *.* @travis

Bravo. Allez une dernière pour la forme. Comment rediriger les messages de niveau
supérieur à " alert " à " root " et " julien " ?

8 2953 TG PA 00
Réponse : *.alert root,julien

4. Conclusion
La gestion des journaux ou logs occupera une part importante dans votre vie d'adminis-
trateur. Vous pourrez ainsi gérer de manière efficace vos serveurs, réagissant rapidement
aux problèmes, et vous pourrez même être capable de les anticiper et donc de les éviter.
Les logs et leur analyse sont une des armes les plus puissantes dont vous disposez pour
vaincre la plupart des pannes, ou tout du moins pour la comprendre (ce qui fournit déjà
50% de la solution...).

Séquence 2

Les journaux
d'événements
ou logs

Page 22

8 2953 TG PA 00
Séquence 3
Planification des tâches
et Scripting avancé
Pour autant que soit passionnant le travail d'administrateur système, vous
verrez rapidement qu'une part non négligeable de votre travail consiste à
faire et refaire de nombreuses fois la même chose. Mais comme nos ordi-
nateurs sont performants et les systèmes d'exploitation bien conçus, nous
allons pouvoir nous aider des capacités formidables d'automatisation des
tâches. Nous allons tout d'abord voir comment automatiser la planifica-
tion des tâches, puis nous verrons quelques techniques avancées afin de
créer des scripts plus complexes.

u Durée indicative : 6 heures

u Capacités attendues en fin de séquence


•Ê  tre capable d'automatiser des tâches.
• Savoir écrire des scripts en Shell.

u Contenu
Page 23
1. La planification des tâches........................................................................................ 24
2. Scripting avancé........................................................................................................... 29
2A. Associer des commandes.............................................................................. 29
2B. Les redirections.............................................................................................. 31
2B1. Rediriger la sortie standard.......................................................................... 31
2B2. Rediriger la sortie standard version 2. ........................................................ 31
2B3. Rediriger la sortie « erreur »......................................................................... 31
2B4. Rediriger l’entrée standard........................................................................... 32
2C. Quelques variables d'environnement de « bash »..................................... 32
2D. Mettre en place des scripts shell.................................................................. 33
2D1. Avant de commencer avec les scripts-shell sous Linux............................... 33
2D2. Les paramètres de position.......................................................................... 33
2D3. Les instructions de la programmation "shell"............................................. 35
2D4. Des exemples ? Alors allons-y !.................................................................... 40
2D5. Poussons l’utilisation des scripts plus loin................................................... 45

8 2953 TG PA 00
1. La planification des tâches
Lancer tel script tous les mardis à 20 h puis tel autre à l'extinction de la machine, quel
administrateur n'a jamais été confronté à cette problématique ? Heureusement, tous
les OS modernes intègrent des outils permettant de planifier facilement l'exécution de
tâches. Ces outils vont aider les administrateurs à automatiser de nombreuses tâches
administratives courantes, aussi bien sur les serveurs que sur les postes de travail. Cette
automatisation procurera un gain de temps non négligeable ainsi qu'un niveau de fia-
bilité accru par rapport à une intervention humaine. Il existe plusieurs fonctionnements
différents des planificateurs de tâches, mais on peut résumer ainsi leur fonctionnement :
" un événement déclenche une action sous certaines conditions ".
L'événement déclencheur : c'est un critère (ou un ensemble de critères) qui déclenchera
l'exécution de la tâche programmée. Les critères les plus courants étant le temps (date et
heure) ou un événement précis (extinction de l'ordinateur, au démarrage, au lancement
de tel ou tel processus).
Les conditions : ce critère souvent optionnel permet d'ajuster plus finement l'événement
déclencheur. Ainsi la tâche ne sera lancée que sur le déclencheur ET sur l'ensemble des
conditions réunies. Exemple : lancer une défragmentation du disque chaque mardi à 17 h
si le PC n'est pas utilisé.
Les actions : quelle commande exécuter lorsque l'événement et les conditions sont réunis ?
Séquence 3 Pour les OS de Microsoft (Windows 7, Server 2008, Vista), voici la liste des déclencheurs
basiques acceptés :
Planification
des tâches • sur une planification : une fois (date + heure), tous les jours, toutes les semaines,
et Scripting avancé tous les mois, et les diverses combinaisons ;
• à l'ouverture d'une session : à la connexion d'un utilisateur ;
Page 24 • au démarrage : lorsque l'ordinateur démarre ;
• en période d'inactivité : le paramètre d'inactivité est configurable dans les conditions ;
• sur un événement : on utilise des requêtes d'événement XML, le journal d'événe-
ment pour choisir l'événement déclencheur ;
• lors de la création/modification de tâches ;
• connexion à une session utilisateur : peut être utiliser pour déclencher des actions
en fonction de la connexion d'un utilisateur spécifique ;
• déconnexion d'une session utilisateur : idem lors de la déconnexion ;
• lors du verrouillage du poste de travail : l'action se déclenchera lorsque l'utilisateur
décidera de verrouiller son poste ;
• lors du déverrouillage du poste de travail : idem que lors du verrouillage.
On peut ajouter à la liste précédente les quelques conditions suivantes.
• Conditions d'inactivité : utilisation quasi-nulle du processeur, absence d'activité du
clavier et de la souris pendant 15 minutes...
• Conditions d'alimentation : l'ordinateur est-il alimenté normalement ou est-il
connecté à un batterie de secours (onduleur) ?
• Conditions de réseau : telle connexion réseau est-elle disponible ?

8 2953 TG PA 00
Et pour terminer voici quelques actions que l'on peut associer :

Nom Programme / Script Arguments


Exécuter un script cscript.exe <fichier de script>
Copier un fichier robocopy <fichier source> <fichier destination>
Démarrer un service Net start <nom du service>
Arrêter un service Net stop <nom du service>
Arrêter shutdown -s
Redémarrer shutdown -r
Fermer la session shutdown -l
Nettoyer un disque cleanmgr /sagerun
Défragmenter un disque Defrag <lettre de lecteur>
Vérifier un disque Chkdsk <lettre de lecteur>
Mapper un lecteur Net use <lettre de lecteur> <chemin d'accès réseau>
Se connecter à un réseau d'accès rasdial <nom d'entrée>
à distance
Se déconnecter d'un réseau rasdial <nom d'entrée> /disconnect
d'accès à distance
Archiver un journal des wevutil al <chemin d'accès du journal>
événements
Afficher une page Web Le navigateur installé <URL>
Séquence 3
Voici quelques captures d'écran de la gestion des tâches sous Windows :
Propriétés d'une tâche Planification
des tâches
et Scripting avancé

Page 25

8 2953 TG PA 00
Création d'un déclencheur

Séquence 3

Planification
des tâches
et Scripting avancé

Page 26 Suivi des tâches

8 2953 TG PA 00
Récapitulatif des tâches

Séquence 3

Planification
des tâches
Sous Unix et GNU/Linux, on utilisera volontiers " cron " et " at " pour toutes les tâches
et Scripting avancé
d'automatisation et de planification. Commençons par définir le rôle de la commande
" cron ". Page 27
La commande " cron " permet la programmation d'événements. Elle utilise un fichier de
nom " crontab " qui se trouve dans le répertoire " /etc/ ". C'est un simple fichier texte,
qui se présente sous la forme d'une table (un tableau si vous préférez), qui est donc
facilement éditable.
Une " crontab " utilise 6 champs dont voici la liste :
Minutes Heures Jours du mois Mois Jour de la semaine Commande à exécuter

Voici des exemples d'entrées dans la " crontab " :

0 18 * * 1-5 Mon_script.sh
Ú Cette ligne a pour but de programmer le lancement du script de nom " mon_script.sh
" tous les jours de la semaine (du lundi au vendredi) à 18 h.

0,30 * * * * df-h>>/home/julien/espace_disque

Ú Permet de copier l'espace utilisé par les différents " fs " montés dans un fichier de
nom " espace_disque " se trouvant dans le répertoire " /home/julien " tous les jours de
l'année, et ce, toutes les demi-heures (chaque heure à 0 minute puis à 30 minutes).

8 2953 TG PA 00
Pour en terminer avec la " crontab ", voici quelques commandes et arguments permet-
tant d'agir sur ce fichier :
–– crontab -e : permet d'éditer le fichier de crontab ;
–– crontab -l : permet de lire le fichier de crontab ;
–– crontab -r : supprime le fichier de crontab.
Bien sur il existe aussi des utilitaires graphiques tels que " kcron " afin de faciliter la
tâche de l'utilisateur. Voici une capture d'écran de cette utilitaire :

Séquence 3

Planification
des tâches
et Scripting avancé

Page 28

Voyons maintenant la deuxième des 2 commandes listées précédemment. Il s'agit de la


commande " at " qui permet de gérer les scripts. Mais contrairement à " cron " et sa
" crontab ", la commande " at " ne permet pas de sauvegarder les modifications à la
fermeture de la session.
Exemple d'utilisation de at :
julien@cned:~$ at 00:00 01.01.2013
warning: commands will be executed using /bin/sh
at> HappyNewYear.sh
at> <EOT>
job 12 at 2013-01-01 00:00
Ú Cette commande permettra d'exécuter le script HappyNewYear.sh le 1er Janvier 2013
à minuit !
Ú Le code <EOT> que vous voyez précédemment signifie " End of Text ". Ce code appa-
raît lorsque vous appuyez sur " ALT + D ".

8 2953 TG PA 00
2. Scripting avancé
Précédemment, nous avons mis en avant le fait qu'il est possible d'automatiser certaines
tâches récurrentes réalisées par un administrateur. Quel que soit le système d'exploita-
tion utilisé, ce dernier offre toujours un ensemble d'actions préprogrammées et directe-
ment opérationnelles mais il offre aussi un langage de programmation permettant de
personnaliser les tâches que l'on souhaite automatiser. On dit que ce langage permet de
créer des scripts-shell. Dans les cours de première année de BTS SIO et notamment dans
le cours et le TP de la matière " Support des services et des réseaux ", vous avez déjà eu
l'occasion de manipuler des langages de scripting comme " PowerShell " ou " WSH "
présents dans l'environnement Windows. Nous n'allons pas revenir sur ceux-ci mais dans
ce paragraphe, nous allons mettre plutôt en avant la création des scripts " bash " dans
l'environnement LINUX.

2A. Associer des commandes


Avant de mettre en place des scripts complexes avec des outils de programmation
complexes, il faut savoir qu'un OS offre bien souvent la possibilité de combiner des
commandes de base afin de créer une commande plus conséquente qui facilite la vie
de l'administrateur. Voyons ce principe sous Linux. En fait, il existe différentes syntaxes
permettant de combiner des commandes (des processus) que voici :
Processus1 | Processus2 | Processus3 .....
Ú Le résultat de sortie du processus1 est envoyé en entrée du processus2. Le résul- Séquence 3
tat en sortie de processus2 est envoyé en entrée de Processus3, etc. Attention, deux
Planification
processus à combiner sont séparés par le caractère " | " (appelé " pipe ") obtenu des tâches
par la combinaison de touches " AltGr " + " la touche 6 du pavé machine à écrire ". et Scripting avancé

Il est bien entendu nécessaire de vérifier que le résultat envoyé par un processus à
Page 29
un autre processus peut être traité par ce dernier.
Processus1 ; Processus2 ; Processus3 .....
Ú Les processus s'enchaînent les uns après les autres. Attention, ils ne s'exécutent
pas en même temps, mais les uns après les autres, et ils ne communiquent pas
ensemble comme précédemment. Chacun garde sa propre entrée standard (par
défaut le clavier) et sa propre sortie standard (par défaut l'écran).
Processus1 && Processus2
Ú Processus1 s'exécute en premier. Si tout s'est bien passé, Processus2 s'exécute à
son tour. Cela permet de lancer l'exécution d'un processus de manière conditionnelle.
Remarque : il faut savoir que tout processus qui se termine renvoie au noyau de
l'OS, un code indiquant s'il s'est bien terminé (code 0 (Zéro)) ou s'il s'est terminé par
une erreur (code différent de 0).
Processus1 || Processus2
Ú Processus1 s'exécute en premier. S'il retourne au noyau de l'OS un code différent
de zéro indiquant que le processus ne s'est pas bien terminé, on tente de déclencher
Processus2. Par contre si Processus1 se termine bien, Processus2 ne s'exécute pas.
Attention, il s'agit de deux caractères " pipe " consécutifs.
Rappel : le caractère " pipe " s'obtient par la combinaison de touches " AltGr " + "
la touche 6 du pavé machine à écrire ".

8 2953 TG PA 00
Processus1 || Processus2
 Processus1 s'exécute en premier. S'il retourne au noyau de lʼOS un code différent de
zéro indiquant que le processus ne sʼest pas bien terminé, on tente de déclencher
Processus2. Par contre si Processus1 se termine bien, Processus2 ne s'exécute pas.
Attention, il s'agit de deux caractères « pipe » consécutifs. Rappel: le caractère
« pipe » s'obtient par la combinaison de touches « AltGr » + « la touche 6 du pavé
Allez ! Desmachine
exemples.
à écrire ».
ls -l | grep '^d'
Allez des
Ú exemples
Permet d'afficher uniquement le nom des répertoires. En effet, un répertoire est
repéré par la présence du caractère " d " en début de ligne suite à la commande
-l | grep
" lsls–l ". '^d' côté, la commande " grep " permet de filtrer parmi les lignes qu'on
De son
lui  Permet en
transmet d'afficher
entréeuniquement le nom des répertoires.
celles qui correspondent au motifEn fourni
effet, unen
répertoire est repéré
paramètre. Dans
par la présence du caractère « d » en début de ligne suite à la commande
notre cas, le motif indique que l'on doit trouver le caractère " d " en début de ligne. « ls –l ». De
son côté, la commande « grep » permet de filtrer parmi les lignes qu'on lui transmet
cat /etc/passwd
en entrée celles| cut qui
-d: -f1 | sort | more
correspondent au motif fourni en paramètre. Dans notre cas, le
Ú Avec motif
cetindique
exemple,que l'on
vous doit trouver
voyez le caractère
qu'il « d »de
est possible encombiner
début de ligne.
un certain nombre
de commandes afin d'obtenir le résultat souhaité. Dans notre cas, nous obtenons la
listecatdes
/etc/passwd
comptes créés | cut -d: -f1 | en
placés sort | more
ordre alphabétique. Détaillons cette ligne.
catAvec
• " cet exemple, vous voyez qu'il estcontenu
/etc/passwd" permet de lister le possible du
de fichier
combiner un certainlanombre
contenant liste desde
commandes
comptes. afin d'obtenir le résultat souhaité. Dans notre cas, nous obtenons la liste
• "cutdes-d:comptes
-f1" prend créés lesplacés
lignesenqui ordre
lui alphabétique.
sont transmises Allez
endétaillons
entrée et cette
les ligne.
découpent en
• "cat /etc/passwd" permet de lister le contenu du fichier contenant la liste des
colonne en considérant que le séparateur de colonne est le caractère ":" (option
comptes.
"-d:")
• "cut -d: il-f1"
puis neprend
gardelesenlignes
résultat
qui luiquesontlatransmises
colonne n°1 (option
en entrée et "-f1").
les découpent en
Séquence 3
• "sort" colonne
trie lesendonnées
considérant quiquelui le
sontséparateur
transmisesde colonne
en entrée.est le caractère ":" (option
Planification des • "more" "-d:")effectue
puis il neun garde en résultat
affichage page queécran
la colonne n°1 (option
par page écran "-f1").
Tâches et Scripting • "sort" trie les données qui lui sont transmises en entrée.
Avancé • "more" effectue
cat /etc/passwd un affichage
| cut -d: page
-f1,6 | sed écran par page écran
-e 's/:/==>/g'
Ú Permet de lister le login et le répertoire de connexion des comptes utilisateurs
Page 303 caten/etc/passwd
Séquence créés ajoutant |une
cut flèche
-d: -f1,6entre
| sed le
-e login
's/:/==>/g'
et le nom du répertoire de connexion.
Planification
En  Permet
fait, de lister leles
en exécutant login et lepremières
deux répertoire commandes
de connexion du
deschaînage,
comptes utilisateurs créés
nous pouvons
des tâches en ajoutant
constater qu'il y une
a unflèche entre le login
double-points quietsubsiste
le nom du répertoire
entre de connexion.
le login et le nom Endu fait, en
réper-
et Scripting avancé exécutant les
toire de connexion. deux premières commandes du chainage, nous pouvons constater qu'il
y a un double-points qui subsiste entre le login et le nom du répertoire de connexion.
Nous utilisons la commande
Nous utilisons " sed
la commande " pour
« sed substituer
» pour lesles
substituer double-points
double-points par uneflèche.
par une flèche.
Page 30

ls /home/alain/MonRep || mkdir /home/alain/MonRep


ls /home/alain/MonRep || mkdir /home/alain/MonRep
Ú On regarde si le répertoire " MonRep " existe dans " /home/alain ". S'il n'existe
pas,"On
ls "regarde si le
renvoie unrépertoire « MonRep
code d'erreur » existe
(valeur dans « /home/alain
différente de zéro) et». dans
S'il n'existe
ce cas,pas,
on
« ls » renvoie un code d'erreur (valeur différente de zéro) et dans ce cas, on crée le
crée le répertoire.
répertoire.
ls /home/alain/MonRep && rm -r /home/alain/MonRep
Ú ls
On/home/alain/MonRep && rm -r
regarde si le répertoire /home/alain/MonRep
" MonRep " existe dans " /home/alain ". S'il existe, la
 On regarde
commande si termine
" ls " se le répertoire
bien«etMonRep
renvoie» le
existe
codedans « /home/alain
"0" (zéro) ». S'il
au noyau du existe, la
système.
commande
Dans ce « ls » se termine
cas, on supprime bien et renvoie le code « 0 » (Zéro) au noyau du sys-
le répertoire.
téme. Dans ce cas, on supprime le répertoire.
echo "Entrez le nom du nouveau compte" ; read LeCompte ; adduser $LeCompte.
Ú Cette succession de commandes permet de créer le compte d’un nouvel utilisa-
teur. Tout d’abord, on affiche un texte à l’écran invitant l’utilisateur à saisir le lo-gin
du nouveau compte. Ensuite, on va placer ce qui a été saisi dans une variable de
nom
« LeCompte ». Et enfin, on passe l’information contenu dans la variable « Le-Compte
29 » en paramètre de la commande « adduser » .

8 2953 TG PA 00

8 2953 TG PA 00
2B. Les redirections
Dans la création des scripts ou des commandes complexes, il peut être intéressant parfois
de rediriger l'entrée standard et/ou la sortir standard. En effet, Par défaut, lorsqu'un
processus (programme) attend des données de la part de l'utilisateur, il se met en attente
d'une saisie clavier. De même lorsqu'un processus (programme) affiche des données, il
les affiche, par défaut, à l'écran. Il est possible de modifier cela avec des caractères de
redirection afin de récupérer des résultats intermédiaires dans un ou plusieurs fichiers
ou envoyer des données à une commande afin qu'elle les traite sans intervention d'un
utilisateur.

2B1. Rediriger la sortie standard


Pour rediriger la sortie standard ; il faut employer la syntaxe suivante :
NomProgramme > NomFichier
Exemple :
ls -l > FichResultat
Le résultat de la commande " ls –l " est envoyé dans le fichier " FichResultat ", qu'il
suffira de consulter ensuite à l'aide d'un éditeur de texte ou de la commande " cat ".
On peut également prendre ce fichier et l'envoyer en fichier-joint à une autre per-
sonne au cas où l'on a un problème sur notre compte LINUX.
Attention, nous avons redirigé la sortie standard vers un fichier. Donc la sortie
standard n'est plus l'écran et c'est pourquoi aucun résultat n'apparaîtra à l'écran. Séquence 3
Ne paniquez pas en disant ma commande ne marche pas. Elle fonctionne très bien.
Planification
Pour s'en convaincre, il faut visualiser le contenu du fichier " résultat ". des tâches
et Scripting avancé
2B2. Rediriger la sortie standard version 2
Page 31
Il existe une deuxième manière de rediriger la sortie standard. Voici la syntaxe :
NomProgramme >> NomFichier
Exemple :
ls >> FichResultat
Le résultat de la commande " ls " est ajouté à la fin du fichier " FichResultat ".
Aucun résultat n'apparaîtra à l'écran. La première version de la redirection de la
sortie standard supprime le contenu du fichier de destination avant d'y ajouter les
nouvelles données alors que cette deuxième version ajoute les nouvelles données à
la suite de l'existant.

2B3. Rediriger la sortie " erreur "


Lorsqu'une commande doit afficher un message d'erreur pour indiquer à l'utilisateur
qu'il y eu un problème durant son exécution, le message apparaît par défaut à l'écran.
Il est possible de demander au système d'envoyer les messages d'erreurs dans un fichier
que l'on peut ensuite consulter.
Remarque : il existe un fichier spécial de nom " /dev/null " qui représente la " poubelle "
et qui est très pratique à utiliser lorsque l'on met en place des script-shell et que l'on ne
souhaite pas polluer l'écran d'un utilisateur avec des messages d'erreurs qui ne l'inté-
resse pas.
Pour rediriger la sortie erreur, il suffit d-utiliser la syntaxe suivante :
NomProgramme 2> NomFichier

8 2953 TG PA 00
Voici un exemple d'utilisation très pratique de la redirection de la sortie " erreur ".
Nous avons vu précédemment que la commande " find " effectue une recherche à par-
tir du répertoire spécifié en paramètre et dans tous les sous-répertoires de ce dernier.
Cependant si l'utilisateur qui lance la commande " find " n'a pas les permissions " x "
et " r " sur les différents répertoires parcourus la recherche ne pourra s'y dérouler et
générera des messages d'erreurs qui risquent de polluer l'écran et masquer les résultats
trouvés. La parade dans ce cas consiste à rediriger les messages d'erreurs vers la poubelle
ce qui permet de ne voir s'afficher que les résultats trouvés. Pour mieux comprendre,
expliquons la commande suivante :
find / -name "M*" 2> /dev/null
Cette ligne de commande permet de rechercher, à partir du répertoire " / ", un fichier
dont le nom commence par un " M " majuscule en évitant de polluer l'écran par des
messages d'erreurs qui se déclenchent lorsque l'utilisateur tente d'ouvrir un répertoire
ou un sous-répertoire sur lequel il n'a aucun droit. Il ne reste donc à l'écran que les mes-
sages intéressant pour lui.

2B4. Rediriger l'entrée standard


Lorsqu'on redirige l'entrée standard, cela signifie que le programme ne va pas attendre
que l'utilisateur tape des informations au clavier, il va chercher les informations atten-
dues dans un fichier. Pour rediriger la sortie standard, il faut employer la syntaxe sui-
vante :
Séquence 3 NomProgramme < NomFichier

Planification Exemple :
des tâches
wall < MonMessage
et Scripting avancé
Cette ligne de commande permet d'envoyer un message à tous les utilisateurs connec-
Page 32 tés (commande " wall "). Le message a été préalablement saisi dans le fichier de nom
" MonMessage " à l'aide d'un éditeur de texte comme " vim ".

2C. Quelques variables d'environnement de " bash "


Les variables d'environnement permettent de stocker en mémoire des informations
relatives à l'environnement de travail des programmes. Il en existe également sous
Windows. Il s'agit en fait d'une variable qui stocke des paramètres du "shell" et qui
définit le contexte dans lequel les commandes et programmes vont s'exécuter. Certains
interpréteurs de commande (shell) ajoutent leurs propres variables d'environnement à
la liste existante pour leur propre fonctionnement.
Quelques remarques :
• Attention, par convention, les variables d'environnement sous LINUX sont en
majuscule.
• Pour accéder au contenu d'une variable d'environnement, il faut la préfixer par un
caractère "$". Ainsi en tapant par exemple : echo $PATH Ú L'interpréteur de com-
mande affiche la valeur de " PATH ".
• Pour lister l'ensemble des variables d'environnement et leur valeur, il suffit de taper
la commande " env " ou la commande " set " qui permet de lister les variables
d'environnement plus d'autres variables définies par l'utilisateur au sein de l'inter-
préteur de commande.

8 2953 TG PA 00
Voici une liste de variables d'environnement. Attention, cette liste n'est pas complète
mais on y trouve les variables d'environnement les plus fréquentes. Pour les autres, vous
pouvez consulter Internet sur le mot clé " bash " ou taper la commande " man bash ".

Nom de la variable Commentaires


Contient le nom de l'interpréteur de commande utilisé ainsi que le chemin
BASH
absolu utilisé pour l'atteindre.
PWD Contient le chemin absolu du répertoire courant.
OLDPWD Contient le chemin absolu du répertoire de travail précédemment atteint.
Contient le chemin des différents répertoires de recherche de la commande à
PATH
exécuter.
Contient le nom du répertoire de connexion de l'utilisateur (le HOME
HOME
Directory).
Définit la forme que va prendre le prompt (invite de commande).
PS1
Nous reviendrons sur cette variable plus loin dans cette séquence.
USER Contient le nom de login de l'utilisateur connecté.
LOGNAME

2D. Mettre en place des scripts shell


2D1. Avant de commencer avec les scripts-shell sous Linux
Pour mettre en place un script-shell LINUX, il faut commencer par créer un fichier "texte" Séquence 3
à l'aide d'un éditeur de texte comme par exemple " vim " puis taper à l'intérieur les ins-
tructions prévues. Il est possible d'utiliser toutes les commandes systèmes de LINUX ainsi Planification
des tâches
qu'un certain nombre d'instructions liées à la programmation "shell" de LINUX que nous et Scripting avancé
allons détailler ci-dessous.
Dans un deuxième temps, il est nécessaire d'attribuer la permission " x " à ce fichier afin Page 33
que celui-ci puisse s'exécuter. Cette permission n'est pas mise par défaut sur un fichier.
Pour l'ajouter, il faut utiliser la commande " chmod ".
Remarque :
• La permission " x " peut être accordée au propriétaire, au groupe, aux autres ou à
tout le monde en fonction de la porteé qu'on souhaite lui donner.
• Un fichier " script " doit avoir également la permission " r " pour s'exécuter car il
s'agit d'un fichier " texte " dont le contenu doit être lu par le " shell " afin d'être
interprété et traduit en actions.

2D2. Les paramètres de position


Lorsque l'on tape une commande LINUX, il est possible de la compléter avec des options
et/ou des paramètres. Ces informations peuvent être récupérées à l'intérieur d'un script.
En fait, chacune d'elles, que l'on appelle également " arguments ", est placée dans un
paramètre de position numéroté de 0 à 9. Comme pour les variables d'environnement,
la valeur des paramètres de position peut être restituée à l'aide du préfixe " dollar " ($).
Le premier paramètre de position ($0) est toujours associé au nom du programme script-
shell exécuté alors que les suivants ($1 à $9) sont associés aux autres arguments placés
sur la ligne de commande. Il existe de plus :

8 2953 TG PA 00
Nom paramètre Commentaires
Contient une valeur représentant le nombre d'arguments passés sur la ligne de
$# commande. Attention, le nom du programme script-shell n'est pas comptabilisé
dans "$#".
S* Contient la liste de l'ensemble des arguments passés sur la ligne de commande.
Contient la valeur de sortie de la dernière commande exécutée. Elle vaut 0 si la
$?
commande s'est déroulée sans problème.
Voici un exemple qui permet de lister les paramètres (les arguments) passés sur la ligne
de commande par l'utilisateur. Si vous voulez le tester, placez-vous sur un nouveau
fichier, tapez le programme qui suit et placez la permission "x" sur ce fichier. Ce script
utilise des instructions de contrôle que nous verrons juste après, donc pas d'inquiétude.
Cependant, veillez dès à présent à bien marquer les espaces comme dans le code qui suit
1 # Programme pour tester les arguments
2 echo "Le nom du programme est : $0"
3 if [ $# -eq 0 ]
4 then
5 echo "Aucun argument sur la ligne de commande"
6 else
7 echo "Voici la liste des arguments"
8 for Arg in $*
Séquence 3
9 do
Planification 10 echo $Arg
des tâches
et Scripting avancé 11 done
12 fi
Page 34
Remarque : les numéros à gauche du " script-shell " ne font pas partie du code, ils sont
là uniquement pour nous repérer plus facilement dans les explications qui vont suivre.
Il ne faut donc pas les taper dans le fichier script.
Explications :
• Ligne 1 : il s'agit d'une ligne de commentaires. Le shell ignore le texte qui est écrit
après.
• Ligne 2 : nous faisons appel au paramètre de position " $0 " afin d'afficher le nom
du programme script-shell exécuté.
• Ligne 3 : nous mettons en place une instruction de contrôle " if ". Le script, en fonc-
tion du résultat du test de la condition, placée entre les crochets, exécutera soit la
partie " then " du programme (ligne 5) soit la partie " else " (lignes 7-11).
• Ligne 5 : cette ligne ne sera interprétée par le shell, que si la condition de la ligne 3
est vraie. Dans ce cas, on affiche la phrase prévue. Remarque: la commande " echo "
possède une option "-e" qui permet d'utiliser des paramètres d'affichage.
• Lignes 7-11 : ces lignes ne seront interprétées par le shell, qui si la condition de
la ligne 3 est fausse. Dans ce cas, on affiche la phrase prévue suivie de la liste des
arguments passés sur la ligne de commande.
• Lignes 8-11 : ces lignes mettent en place une boucle " for " qui permet d'exécuter,
plusieurs fois de suite, les instructions qu'on lui donne (ici la ligne 10). Dans notre
cas, la variable de nom " Arg " va prendre, à chaque tour de boucle, une valeur dans
la liste des arguments " $* ".

8 2953 TG PA 00
Rappel : pour afficher le contenu de cette variable à un moment donné, on préfixe son
nom par le caractère " $ ".

2D3. Les instructions de la programmation "shell"


2D3.1 Mise en place d'une condition
Une condition est un test logique dont le résultat sera VRAI ou FAUX. La grande majorité
des instructions de contrôle, que nous allons énumérer juste après, utilisent la notion de
" condition ". Dans un script LINUX, une condition peut se mettre en place à l'aide de
deux syntaxes que voici :
test Condition
Ou
[ Condition ]
La commande " test " comme son nom l'indique permet de tester des conditions qui
peuvent concerner soit des fichiers, soit des chaînes de caractères, soit des expressions
numériques.
a) Dans le cas d'un fichier, la " condition " prend la forme suivante :
Option NomFichier
Nous pouvons utiliser les options suivantes :

Option Commentaires
Séquence 3
-e Permet de tester si le fichier existe.
-f Permet de tester si le fichier est un fichier ordinaire. Planification
des tâches
-d Permet de tester si le fichier est un répertoire.
et Scripting avancé
-r Permet de tester si le fichier à la permission "Read".
-w Permet de tester si le fichier à la permission "Write" Page 35
-x Permet de tester si le fichier à la permission "Executable".
-s Permet de tester si le fichier n'est pas vide.
b) Dans le cas d'une chaîne de caractères, la " condition " prend la forme suivante :
Option ChaineCaractères
Nous pouvons utiliser les options suivantes :

Option Commentaires
-z Permet de tester si la chaîne de caractères est vide.
-n Permet de tester si la chaîne de caractères n'est pas vide.
c) Dans le cas d'une chaîne de caractères, la "condition" peut également avoir la forme
suivante :
ChaineCaractères Option ChaineCaractères
avec les options suivantes :

Option Commentaires
Permet de tester si les deux chaînes de caractères sont égales.
=

!= Permet de tester si les deux chaînes de caractères sont différentes.

8 2953 TG PA 00
Attention : les deux chaînes de caractères doivent être placées entre guillemets.
d) Dans le cas des expressions numériques, la condition peut avoir la forme suivante :
Valeur Option Valeur
Nous pouvons utiliser les options suivantes :

Option Commentaires
-eq Permet de tester si les deux valeurs numériques sont égales.
=
Permet de tester si les deux valeurs numériques sont
-ne
différentes.
Permet de tester si la première valeur est strictement plus
-lt
petite que la deuxième.
Permet de tester si la première valeur est strictement plus
-gt
grande que la deuxième.
Permet de tester si la première valeur est plus petite ou égale
-le
à la deuxième.
Permet de tester si la première valeur est plus grande ou
-ge
égale à la deuxième.
e) Il est possible de combiner des conditions en utilisant les options suivantes :

Séquence 3 Option Commentaires


Cette option représente le "Et" et permet de combiner deux
Planification -a conditions. Le résultat général sera à VRAI si et seulement si
des tâches
et Scripting avancé les deux conditions ont été évaluées à VRAI.
Cette option représente le "Ou" et permet de combiner deux
Page 36 -o conditions. Pour que le résultat général soit à VRAI, il suffit
seulement que l'une des deux conditions soit évaluée à VRAI.
ou exprimer la négation avec l'option :

Option Commentaires
! Négation de la condition
Des exemples :
• Ce premier exemple permet de récupérer le nom d'un fichier passé sur la ligne de
commande puis vérifier si le fichier existe ou non.
if [ -e $1 ]
then
echo "Le fichier existe"
else
echo "Le fichier n'existe pas"
fi

• Dans le programme précédent, on ne contrôle pas le fait qu'un utilisateur passe bien
un argument à la suite de la commande afin que celle-ci fonctionne. Corrigeons cela.

8 2953 TG PA 00
if [ $# -eq 0 ]
then
echo "Il faut au moins 1 argument"
else
if [ -e $1 ]
then
echo "Le fichier existe"
else
echo "Le fichier n'existe pas"
fi
fi
• Voici un exemple dans lequel on demande à l'utilisateur de saisir une valeur puis nous
regardons si la valeur saisie est dans l'intervalle [100-200]. Voici le code :
echo "entrez une valeur"
read Valeur
if [ $Valeur -ge 100 -a $Valeur -le 200 ]
then
echo "Votre valeur est entre 100 et 200"
else
echo "Votre valeur est en dehors de l'intervalle [100,200]"
fi

2D3.2 La conditionnelle
Voici la syntaxe générale de la conditionnelle.

Séquence 3
if Condition
then
Planification
instructions des tâches
fi et Scripting avancé

Page 37
Fonctionnement : Si la condition est " vraie ", on exécute les instructions situées entre le
" then " et le " fi ". Dans le cas contraire, on ne fait rien.
Exemple : nous voulons afficher un message d'erreur s'il n'y a pas d'argument sur la ligne
de commande.

if [ $# -eq 0 ]
then
echo "Aucun argument sur la ligne de commande"
fi

2D3.3 L'alternative
Voici la syntaxe générale de l'alternative.
if Condition
then
instructions "Alors"
else
instructions "Sinon"
fi

Fonctionnement : si la condition est " vraie ", on exécute les instructions du bloc " Alors "
situées après le " then " et avant le " else ". Dans le cas contraire, on exécute les instruc-
tions du bloc " Sinon " situées entre le " else " et le " fi ".

8 2953 TG PA 00
Exemple : nous voulons afficher un message d'erreur s'il n'y a pas d'argument sur la ligne
de commande mais par contre s'il y en a, nous souhaitons afficher la valeur du premier
argument.
if [ $# -eq 0 ]
then
echo "Aucun argument sur la ligne de commande"
else
echo "vous avez fourni en premier argument: $1"
fi

2D3.4 La répétitive
Voici la syntaxe générale de la répétitive.

while Condition
do
instructions
done

Fonctionnement : il s'agit d'une boucle. Ainsi tant que la condition est à " VRAI ", on
exécute les instructions du bloc situées entre le " do " et le " done ". Dès que la condition
passe à " FAUX ", on sort de la boucle, c'est-à-dire que l'on va après le " done ".
Exemple : nous voulons que l'utilisateur fasse la saisie d'une valeur obligatoire. Nous
Séquence 3
allons donc boucler sur la saisie tant que celui-ci n'a pas tapé de valeur. Voici le code :
Planification echo "Entrez une valeur"
des tâches read Valeur
et Scripting avancé
while [ -z $Valeur ]
do
Page 38 echo "Vous devez saisir une valeur"
read Valeur
done
echo "Vous avez saisi $Valeur"

Remarque : l'instruction " read ", lorsqu'elle est exécutée, permet de bloquer le déroule-
ment des instructions jusqu'à ce que l'utilisateur tape quelque chose au clavier et appuie
sur la touche "Entrée". Dans ce cas, la donnée saisie est placée dans la variable dont on
passe le nom en paramètre de la commande " read ". Si l'utilisateur tape directement sur
la touche " Entrée " sans rien saisir avant, le programme continue alors son déroulement
et la variable passée en paramètre de la commande " read " est vide de contenu.
2D3.5 La boucle " for "
Voici la syntaxe générale du " for "

for NomVariable in listeValeurs


do
instructions utilisant la variable ($NomVariable)
done

Remarque : à la différence de l'instruction " while" qui boucle jusqu'à ce que la condi-
tion prenne la valeur " FAUX ", l'instruction " for " passe en revue les éléments de la liste
des valeurs qu'on lui fournit à la suite du mot-clé " in ". Cela signifie que les instructions
vont se répéter tant que l'instruction " for " n'a pas traité tous les éléments de la liste.
Exemple :

8 2953 TG PA 00
echo "On commence la boucle for"
for UneValeur in a b c d e
do
echo "La boucle traite la valeur $UneValeur"
done
echo "Fin de la boucle for"

Remarque : au début du paragraphe concernant les scripts et plus particulièrement dans


" les paramètres de position ", vous trouverez un autre exemple que je vous conseille de
relire maintenant que nous avons vu l'instruction " for ".
2D3.6. La structure de choix ou l'aiguillage
Voici la syntaxe générale du "case" de l'aiguillage
case Chaine in
Motif_1) Bloc_instructions1 ;;
Motif_2) Bloc_instructions2 ;;
...
Motif_N) Bloc_instructionsN ;;
* ) Bloc_instructionsCasAutre ;;
esac

Fonctionnement : cette instruction permet de proposer un ensemble de traitements


possibles. Celui qui sera exécuté est celui dont le motif correspond à celui contenu dans
" Chaine ". Ainsi, si " Chaine " correspond à " motf_1 ", le shell exécutera la partie "
Bloc_instructions1 ". Si " Chaine " correspond à " motf_2 ", le shell exécutera la partie "
Bloc_instructions2 " et ainsi de suite. Au final, si "Chaine" ne correspond à aucun motif, Séquence 3
le shell exécutera la partie " Bloc_instrcutionsCasAutre ". Chacun des blocs d'instructions
doit se terminer par deux " point-virgule ". Planification
des tâches
Exemple : nous allons demander à l'utilisateur de saisir une lettre. Si la lettre saisie est et Scripting avancé
une voyelle, le script affiche un message disant qu'il s'agit d'une voyelle et, dans le cas
contraire, le script affiche qu'il s'agit d'une consonne. Dans cet exemple, nous consi- Page 39
dérons qu'il n'y aura pas d'erreur de saisie et que l'utilisateur tapera toujours soit une
voyelle soit une consonne. Voici le code :
echo "Entrez une lettre"
read Lettre
case $Lettre in
a|A|e|E|i|I|o|O|u|U|y|Y) echo "Il s'agit d'une voyelle";;
*) echo "il s'agit d'une consonne";;
esac

Remarque : le caractère "|" (pipe) employé dans le script, pour l'énumération des
voyelles, a pour signification "ou".
Rappel : il est obtenu par la séquence de touches "AltGr" + "touche 6 du pavé machine
à écrire".
2D3.7. L'instruction " break "
L'instruction " break " permet de quitter une boucle avant son terme sans attendre que
la condition prenne la valeur " FAUX ".
Exemple : nous allons reprendre l'exemple donné dans le cas du " while " et le modifier
comme suit. Nous souhaitons boucler tant que l'utilisateur n'a rien saisi mais nous l'auto-
risons à quitter la saisie en tapant le mot " fin ". Voici la modification :

8 2953 TG PA 00
echo "Entrez une valeur"
read Valeur
while [ -z $Valeur ]
do
echo "Vous devez saisir une valeur ou fin pour terminer"
read Valeur
if [ "$Valeur" = "fin" ]
then
break
fi
done
echo "Vous avez saisi $Valeur"

Remarque : pour comparer deux chaînes de caractères, il faut que les deux soient placées
entre guillemets.
2D3.8. Les anti-quotes
Les caractères "anti-quotes", obtenus par la combinaison des touches "AltGr" + "Touche
7 du pavé machine à écrire", permettent de substituer le texte d'une commande par son
résultat. Par exemple, en tapant les commandes suivantes, nous obtenons :
echo `pwd`
Ú affiche le nom du répertoire courant. En effet, la partie `pwd` est exécutée avant
que la commande "echo" ne soit évaluée.
echo "il y a `who | wc -l` personne(s) connectée(s)"
Séquence 3
Ú permet d'afficher le nombre de personnes connectées
Planification 2D3.9. Spécifier un shell
des tâches
et Scripting avancé Si vous utilisez différents "shells" ou que vous souhaitiez partager vos scripts, il peut être
utile de préciser quel "shell" est utilisé par faire fonctionner votre script. En effet, d'un
Page 40 shell à l'autre, il peut y avoir des différences dans la syntaxe des instructions du " shell ". Il
est donc recommandé de toujours préciser, sur la première ligne du script, le nom du shell
à utiliser avec la ligne suivante : #!NomDuShell. Par exemple, si on souhaite préciser que
c'est le " bash " qu'il faut utiliser, il faut écrire au début du script : #!/bin/bash . Cette ligne
oblige le shell courant à exécuter le script avec un shell " bash " même si vous utilisez par
exemple " C shell " comme shell par défaut quand vous vous connectez.
Remarque : cette ligne n'est pas prise pour une ligne de commentaires car le "#" est
suivi d'un point d'exclamation et l'ensemble prend donc une autre signification pour le
"shell".
2D4. Des exemples ? Alors allons-y  !
Exemple 1 : nous allons mettre en place un script qui va demander à l'utilisateur d'entrer
un nom de fichier, avec éventuellement des caractères jokers, et le nom d'un répertoire
avec si nécessaire le chemin pour l'atteindre. Le script va ensuite rechercher, à l'aide de
la commande " find ", les différents répertoires de l'arborescence contenant le fichier
cherché et ce à partir du répertoire fourni. Au final, le script affiche les réponses trouvées
ainsi que leur nombre. Voici une capture d'écran de l'affichage souhaité.

8 2953 TG PA 00
Ce script va également contrôler le fait que :
• l'utilisateur saisisse un nom de fichier et ne se contente pas de taper tout simplement
sur la touche " Entrée " sans rien saisir. En cas de problème, le script redemande en
boucle le nom d'un fichier et ce tant que l'utilisateur ne s'exécute pas.concernant
la saisie du répertoire point de départ de la recherche, si l'utilisateur tape directe-
ment sur la touche "Entrée" sans saisir de nom de répertoire, par défaut, le script
va lancer la recherche à partir du répertoire de connexion de l'utilisateur (voir la
première capture d'écran ci-dessous). Si l'utilisateur saisit le nom d'un répertoire
avec son chemin, le script contrôle le fait que celui-ci existe bien. Dans la négative,
Séquence 3
le script s'arrête (voir la deuxième capture d'écran ci-dessous).
Planification
des tâches
et Scripting avancé

Page 41

Voici le code de notre programme :

1 #!/bin/bash
2
3 # Le script attend la saisie d'un nom de fichier et d'un répertoire
4 echo "Entrez le nom d'un fichier"
5 read NomFich
6 while [ -z $NomFich ]
7 do
8 echo "Il FAUT un nom de fichier !"

8 2953 TG PA 00
9 echo "Entrez le nom d'un fichier"
10 read NomFich
11 done
12 echo "Entrez le nom du répertoire de départ de la recherche"
13 read RepDep
14
15 # Vérification du répertoire de recherche
16 if [ -z $RepDep ]
17 then
18 RepDep=$HOME
19 else
20 # Vérifier l'existence du répertoire
21 ls $RepDep &>/dev/null
22 if [ $? -ne 0 ]
23 then
24 echo "Repertoire inexistant"
25 exit
26 fi
27 fi
Séquence 3
28
Planification
29 # Lancer la recherche
des tâches
et Scripting avancé 30 echo "La recherche va s'effectuer avec les permissions de l'utilisateur : $LOGNAME"
31 echo "et à partir du répertoire : $RepDep"
Page 42
32 echo -e "\nRecherche en cours ..."
33 NbRep=`find $RepDep -name "$NomFich" -type f 2>/dev/null | tee LesReponses | wc -l`
34 echo -e "Fin de la recherche\n"
35
36 # Affichage du résultat de la recherche
37 if [ $NbRep -eq 0 ]
38 then
39 echo "Il n'y a pas de solution trouvée"
40 else
41 echo "Il y a $NbRep solution(s) trouvée(s) dans"
42 cat LesReponses | more
43 rm LesReponses
44 fi

Je suis sûr que vous apprécierez quelques explications, alors explications !


• Ligne 1 : cette ligne permet d'indiquer que le script doit être exécuté à l'aide de
"bash".
• Ligne 4 à 11 : ces lignes permettent de faire la saisie du nom du fichier cherché et
de contrôler qu'il y a bien un nom de saisie. Attention, la ligne 10 est importante

8 2953 TG PA 00
car elle permet au script de s'arrêter et d'attendre la saisie d'un nouveau nom de
fichier. Sans cette ligne, la boucle serait infinie puisque la variable "NomFich" res-
terait à jamais vide.
• Ligne 12 à 13 : ces lignes permettent de faire la saisie du nom du répertoire qui sera
le point de départ de la recherche.
• Ligne 16 : cette ligne contrôle le fait que la variable " RepDep " n'est pas vide.
• Ligne 18 : cette ligne ne s'exécute que si le test de la ligne 16 est VRAI, c'est-à-dire
que la "RepDep" est vide. Dans cette ligne, on affecte à la variable "RepDep" le
nom du répertoire de connexion de l'utilisateur courant et ce grâce à la variable
d'environnement " HOME ".
• Ligne 20 à 26 : ces lignes ne s'exécutent que si le test de la ligne 16 est FAUX, c'est-
à-dire que la " RepDep " n'est pas vide.
• Ligne 21 : l'instruction de cette ligne permet de savoir si le répertoire du départ
de la recherche existe. En effet, la commande " ls " enverra un message d'erreur
si le répertoire, dont il tente de lister le contenu, n'existe pas. Pour ne pas polluer
l'écran avec le message d'erreur le cas échéant, nous redirigeons la sortie erreur vers
la poubelle. De même pour ne pas polluer l'écran avec le contenu du répertoire de
départ, s'il existe, on redirige la sortie standard vers la poubelle.
• Ligne 22 : il s'agit d'une ligne de test. Le paramètre " $? " permet de savoir si la
dernière commande exécutée s'est bien terminée ou non. Ce paramètre contient
la valeur 0 si la dernière commande exécutée s'est bien terminée et une valeur
d'erreur différente de 0 si la dernière commande exécutée ne s'est pas bien termi-
Séquence 3
née. Dans notre cas, la dernière commande exécutée est celle de la ligne 21. Ainsi
si le répertoire de départ n'existe pas, la ligne 21 se termine sur une erreur et donc Planification
le paramètre " $? " est différent de 0. des tâches
et Scripting avancé
• Ligne 24 à 25 : ces lignes ne s'exécutent que si le test de la ligne 22 est VRAI, c'est-
à-dire que la " RepDep " n'existe pas.
Page 43
Remarque : la commande " exit " permet d'interrompre l'exécution du script.
• Ligne 30 à 32 : ces lignes affichent de l'information à l'écran.
• Ligne 33 : cette ligne permet d'affecter, à la variable " NbRep ", le résultat de la
commande délimitée par des " anti-quotes "
Rappel : une commande placée entre anti-quotes est exécutée en premier.
Cette commande est divisée en trois parties. Dans la première partie, on réalise la
recherche à l'aide de la commande " find ". Les résultats trouvés sont envoyés sur
l'entrée standard de la commande " tee ". La commande " tee " envoie ce qu'elle reçoit
sur son entrée standard vers deux sorties différentes à savoir vers le fichier de nom "
LesReponses " et vers l'entrée standard de la commande " wc ". Le fichier "LesReponses"
va donc contenir les résultats envoyés par la commande " find ". La commande " wc –l
" permet de compter le nombre de lignes qui arrivent sur son entrée standard donc le
nombre de lignes " Résultats " produites par " find ". Un petit schéma :

8 2953 TG PA 00
Remarque : la commande "find" peut essayer d'ouvrir des répertoires sur lesquels l'utili-
sateur n'a pas les permissions "x" et "r". Dans ce cas des messages d'erreurs apparaissent
que nous envoyons alors à la poubelle.
• Ligne 34 : affichage d'un texte pour l'utilisateur.
• Ligne 37 à 44 : ces lignes affichent les résultats de la recherche.
• Ligne 39 : affichage du texte concernant le fait qu'aucun résultat n'a été trouvé.
• Ligne 41 : affiche le nombre de résultats trouvés.
• Ligne 42 : affiche du contenu du fichier " LesReponses " en mode page par page.
Cela permet de lister les résultats trouvés par la commande " find ".
• Ligne 43 : on efface le fichier " LesReponses " car nous n'en avons plus besoin.
Exemple 2 : il existe un fichier de nom " /etc/profile " qui est un fichier de configuration
de l'environnement des utilisateurs appelé à chaque connexion réussie d'un utilisateur.
Nous allons compléter le code de ce fichier avec le code ci-dessous Précaution : faites
une copie de ce fichier avant de le modifier, comme cela, en cas d'erreur, vous pourrez
le restaurer dans son état initial.
case $LOGNAME in
root) echo "Vous êtes root"
echo "Voici les utilisateurs connectés"
who ;;
alain|pierre) echo "Vous êtes $LOGNAME"
if [ -e $HOME/temp ]
then
Séquence 3 if [ -d $HOME/temp ]
then
Planification echo "Je vide le répertoire temp"
des tâches rm $HOME/temp/* 2> /dev/null
et Scripting avancé else
echo "Je supprime le fichier temp"
Page 44 rm $HOME/temp
echo "Mise en place du répertoire temp"
mkdir $HOME/temp
fi
else
echo "Mise en place du répertoire temp"
mkdir $HOME/temp
fi
echo "Restriction des permissions sur temp"
chmod 700 $HOME/temp ;;
*) echo "l'utilisateur $LOGNAME vient de se connecter" > $HOME/message
write root < $HOME/message 2> /dev/null
rm $HOME/message ;;
esac

Ce code réalise différentes tâches qui dépendent du nom de login ($LOGNAME) de l'uti-
lisateur qui est en train de se connecter. Ainsi :
• S'il s'agit de " root ", on affiche la liste des utilisateurs actuellement connectés.
• S'il s'agit de " alain " ou de " pierre ", on crée dans le répertoire de connexion de
celui-ci repéré par la variable d'environnement " HOME ", un répertoire de nom
" temp ". Si ce répertoire existe, on vide son contenu en prenant la précaution
d'envoyer dans la poubelle les messages d'erreurs qui peuvent apparaître notam-
ment lorsque le répertoire est déjà vide. Si le nom " temp " est déjà associé à un
fichier se trouvant dans le répertoire de connexion, on le supprime puis on crée le
répertoire " temp ". Si le répertoire " temp " n'existe pas, on le crée et on modifie

8 2953 TG PA 00
les permissions sur celui-ci.
• Si l'utilisateur qui se connecte n'est pas un de ceux cités au-dessus, on envoie un
message via la commande " write " à " root " pour l'avertir de la connexion de
l'utilisateur. Pour cela, on place le message à envoyer dans un fichier dont en envoie
ensuite le contenu sur l'entrée standard de la commande " write ". Attention, si
l'utilisateur " root " n'est pas connecté, la commande " write " envoie un message
d'erreur que l'on transfère dans la poubelle. Le fichier de message crée est supprimé,
ceci pour éviter de laisser des traces sur le répertoire de connexion de l'utilisateur.
Exemple 3 : nous allons écrire un script qui affiche le nom des utilisateurs connectés ainsi
que le nom du terminal sur lequel ils sont connectés. Pour cela, nous allons utiliser une
boucle " for " à qui on transmet une liste d'informations associant le nom de login de
l'utilisateur et le nom de son terminal de connexion.
Voici le code :
for Nom in `who | sed 's/[ ][ ]*/:/g' | cut -d: -f1,2`
do
echo "l'utilisateur `echo $Nom | cut -d: -f1` est sur `echo $Nom | cut
-d: -f2`"
done

Quelques explications s'imposent :


• La succession de commandes " who | sed 's/[ ][ ]*/:/g' | cut -d: -f1,2 " a pour but de
ne récupérer que le nom des utilisateurs connectés et le nom de leur terminal de
Séquence 3
connexion. Voici un exemple de résultat produit par cet ensemble de commandes.
Planification
des tâches
et Scripting avancé

Page 45

• Chaque ligne retournée par la commande précédente est donc un élément de la


liste transmise à " for ". Pourquoi avoir ajouté le caractère ":" entre le login et
le nom du terminal ? Tout simplement parce que le caractère " espace " est un
séparateur d'éléments à l'intérieur de la liste. Donc à chaque tour de boucle, nous
aurions eu une fois le nom de login et une fois le nom du terminal mais jamais les
deux en même temps. Avec le caractère " : " à la place de l'espace, nous n'avons
plus ce problème.
Après exécution du script-shell complet, nous obtenons :

Voilà, nous n'irons pas plus loin dans la programmation " shell " mais vous voyez qu'elle
permet de faire beaucoup de chose et donc d'automatiser des tâches répétitives.

2D5. Poussons l’utilisation des scripts plus loin


Les scripts Linux sont riches en possibilité comme nous venons de le voir. On peut les
utiliser dans différentes circonstances. En voici quelques-unes ?

8 2953 TG PA 00
2D5.1. Les alias
Les alias permettent de créer des raccourcis vers des commandes Linux ou des scripts. Il
ne reste plus ensuite qu’à appeler l’alias sur la ligne de commande pour déclencher la
com-mande associée.
• Pour créer un alias, il suffit de taper la commande :
alias NomAlias = 'Commande‘
alias NomAlias = "Commande"
• Pour lister les alias existants, il suffit de taper la commande « alias »
• Pour supprimer un alias, il faut utiliser la commande « unalias NomAlias »
• Pour conserver un alias de manière définitive, il faut le placer dans le fichier de
confi-guration de l’utilisateur « .bash_profile » ou le fichier de configuration géné-
rale « /etc/profile »
Exemples :
alias Qui1="who | more"
alias Qui2="who | sed -e 's/ */ /g' | cut –d' ' -f1 | sort | more"
¢ la commande « sed » mise en place ici permet de remplacer un ensemble
d’espaces par un seul. Au final, cette commande liste par page les utilisateurs
connectés par ordre alphabétique

Supposons maintenant que nous ayons mis en place le script « qui.sh » suivant dans un
Séquence 3 répertoire de nom « /MesScripts »:
for for Nom in `who | sed 's/[ ][ ]*/:/g' | cut -d: -f1,2`
Planification do
des tâches
 echo "l'utilisateur `echo $Nom | cut -d: -f1` est sur `echo $Nom |
et Scripting avancé
cut -d: -f2`"
done
Page 46

L’alias à mettre en place pourra être :


alias Qui3="/MesScripts/qui.sh"

2D5.2. Les fichiers de configuration


Nous avons déjà eu l’occasion de parler des fichiers de configuration de base de Linux
avec « /etc/profile » et « .bash_profile ». Il est possible de placer du script à l’intérieur de
ces deniers afin de déclencher des actions lorsqu’un utilisateur se connecte. Cela peut
per-mettre de remettre des répertoires au propre, de mémoriser des informations de
con-nexions, etc ….
Voyons un exemple très simple qui consiste à afficher du texte sur l’écran de l’utilisateur
à la fin de sa procédure de connexion tout en mémorisant la date et l’heure de cette
connexion dans un fichier « historique » placé dans « /tmp ».
Voici un exemple de ce que l’on obtiendra avec le code proposé.

8 2953 TG PA 00
Voici le code que l’on peut placer dans « /etc/profile » qui correspond au fichier de confi-
guration générale.

1 #!/bin/bash
2 # Message personnel
3 JeSuis=$(whoami)
4 DateConnect=$(date +'%d %h %Y %H:%M')
5 LastConnect=$(cat /temp/historique | grep $JeSuis | tail -n1 | cut -d" " -f3-7)
6 echo "$JeSuis connexion le $DateConnect" >> /tmp/historique
7 NbConnect=$(cat /tmp/historique | grep "^$JeSuis" | wc -l)
8 if [ $NbConnect -eq 1 ]
9 then
10 Suite="ère"
11 else
12 Suite="ème"
13 fi
14 echo "***********************************************************"
15 echo
16 echo " Bonjour LINUXIEN "
17 echo
Séquence 3
18 echo " Je te souhaite la bienvenue dans ce nouveau monde "
Planification
19 echo
des tâches
20 echo " Ton login est : $JeSuis " et Scripting avancé

21 echo " Tu te connectes pour la $NbConnect $Suite fois "


Page 47
22 echo " derniere connexion : $LastConnect "
23 echo "*********************************************************** "

Allez quelques explications pour en finir avec cet exemple


• Ligne 1: cette ligne permet d'indiquer que le script doit être exécuté à l'aide de
"bash".
• Ligne 3: On stocke dans la variable de nom « JeSuis » le nom de login de la personne
qui ouvre la session.
• Ligne 4 : On stocke dans la variable de nom « DateConnect » la date et l’heure de
connexion.
• Ligne 5 : Ce script a pour but, entre autre, je vous le rappelle, de stocker la nom de
la personne qui se connecte ainsi que la date et l’heure de connexion. On peut donc
supposer que si on arrive à extraire du fichier « historique » la dernière ligne en rap-
port avec nom utilisateur, on aura la date et l’heure de la dernière connexion. On
extrait donc ces informa-tions que l’on stocke dans la variable de nom « LastConnect
».
• Ligne 6 : On place dans le fichier « historique » les informations sur la connexion en
cours.
• Ligne 7 : On stocke dans la variable de nom « NbConnect » le nombre de lignes se
trouvant dans le fichier « historique » en rapport avec notre utilisateur. Cela corres-
pond au nombre de fois où l’utilisateur a réalisé une opération de connexion.
• Lignes 8-24 : Affichage des informations souhaitées

8 2953 TG PA 00
2D5.3. Commandes réseaux et scripts
Les scripts linux peuvent faire intervenir différentes commandes réseaux permettant de
réaliser une configuration IP, une configuration de VLAN ou encore une connexion SSH.
Nous n’allons pas détailler ici toutes les possibilités mais dans la partie TP de ce cours,
vous verrez comment réaliser une connexion SSH à travers un exemple mais aussi « scp
». En résumé, les scripts permettent de faciliter le travail d’un administrateur dans tous
les do-maines alors n’hésitez pas à y consacrer du temps.

Séquence 3

Planification
des tâches
et Scripting avancé

Page 48

8 2953 TG PA 00
Séquence 4
Gestion des performances
Votre serveur tourne maintenant comme une horloge, les utilisateurs sont
satisfaits et votre responsable aussi, tout va pour le mieux dans le meilleur
des mondes, vous pouvez donc vous reposez un peu et... STOP ! Un système
ça vieillit, ça s'encrasse, vous devez donc veillez à gérer au mieux votre
système pour éviter que votre " Ferrari " ne se transforme en " Lada ".

u Durée indicative : 1 heure

u Capacités attendues en fin de séquence


•C  onnaître les outils permettant de surveiller les ressources système.
• Comprendre les enjeux de la gestion des ressources système.

u Contenu
1. Surveiller les Ressources Système............................................................................. 50
2. Adapter les Ressources Système............................................................................... 53
3. Les Benchmarks............................................................................................................... 53

Page 49

8 2953 TG PA 00
1. Surveiller les Ressources Système
Cela peut paraître bête, mais pour tout système d'exploitation et pour tout logiciel, les
éditeurs vous fournissent des spécifications recommandés pour que votre système tourne
correctement. Respectez cela scrupuleusement. D'une manière générale, il faut faire
attention aux éléments suivants :
• la puissance de calcul : le nombre et la puissance des processeurs ;
• la taille mémoire : RAM et disque (SWAP) ;
• les performances d'entrées/sorties : concerne les disques mais aussi les communica-
tions réseau.
Mais cela ne suffit pas. En fonction de l'usage fait du serveur, des services hébergés et du
nombre d'utilisateurs, les ressources du serveur (Mémoire, taux d'occupation du proces-
seur, etc) vont fluctuer et peuvent arriver à saturation. Votre rôle est donc de surveiller
continuellement la disponibilité de ces ressources. Mais comme vous avez de nombreuses
autres tâches à effectuer, il va falloir là aussi automatiser celle-ci notamment en réalisant :
• une surveillance de l'utilisation des ressources afin d'éviter tout blocage ;
• une détection de tout goulot d'étranglement qui ralentirait le système ;
• une réponse rapide aux problèmes : diminuer la charge ou rajouter des ressources
système.
En ce qui concerne la surveillance, il existe de nombreux outils système dépendant de
votre système d'exploitation qui vous permettront de monitorer l'usage de vos res-
Séquence 4 sources.

Gestion Par exemple, sous Linux :


des performances • free : permet de connaître l'utilisation mémoire ;
• iostat : permet de connaître l'utilisation du CPU, des disques et partitions ;
Page 50
• ps : liste les processus actifs ;
• top : liste les processus consommant le plus de ressources ;
• uptime : permet de connaître la charge du système ;
• vmstat : statistique détaillées sur le CPU, la mémoire et les entrées/sorties.
Il existe aussi des outils graphiques comme " Cacti " ou " Munin " (bien plus simple à
utiliser). Voici quelques prises d'écran de Munin permettant de monitorer l'utilisation
CPU et Mémoire vive, et ce, par jour et par semaine :

8 2953 TG PA 00
Séquence 4

Gestion
des performances

Page 51

8 2953 TG PA 00
Séquence 4

Gestion
des performances

Page 52

8 2953 TG PA 00
2. Adapter les Ressources Système
En ce qui concerne le fait de rajouter des ressources systèmes :
• CPU : vous pouvez à priori opter pour un processeur plus puissant ou alors rajouter
un processeur supplémentaire ou possédant plus de cores (" coeur " de processeur,
unité de calcul). La limite technique dépendra de la carte-mère.
• Mémoire RAM : ici aussi, la carte-mère vous dictera la limite physique. Rajouter de
la RAM sur un serveur est souvent très efficace.
• Les entrées-sorties : ici vous pouvez utiliser des systèmes RAID, opter pour des
disques et des cartes interfaces plus rapides ou qui fonctionnent en équilibrage de
charge (loadbalancing : on répartie la charge de travail entre plusieurs serveurs afin
d'améliorer les performances)
• Gérer efficacement le SWAP : même si le swap n'est pas indispensable au fonction-
nement des OS modernes, il peut encore vous sauvez d'un crash système en cas
d'utilisation trop importante de la RAM.
En ce qui concerne le fait de diminuer la charge :
• Faire la chasse aux services inutiles. À quoi peut bien servir une interface graphique
sur un serveur utilisé uniquement pour héberger des sites web ?
• Encadrer au mieux les ressources disponibles par application et par utilisateur : cela
évitera tout accaparement des ressources en un point unique.
• Faites tourner les opérations routinière et demandant de nombreuses ressources
(sauvegarde, scans antivirus, etc...) durant des périodes où la charge est faible (sou- Séquence 4
vent la nuit ou le week-end).
Gestion
des performances
3. Les Benchmarks
Page 53
Afin de savoir si votre serveur tiendra bien la charge, il vaut mieux le tester avant la mise
en production. Pour cela vous pouvez utiliser des Benchmarks (test de performance) afin
de tester divers comportements dans différents domaines :
• Test d'endurance : on simule une charge très importante pendant une période
étendue afin de vérifier la stabilité du système. Il existe des outils dédiés, souvent
disponible avec le serveur en lui-même (par exemple avec Apache).
• Test de charge : on simule un nombre prédéfinis d'utilisateurs pendant une période
fixe.
• Test de charge en épis : on simule des montées soudaines en charge.
Il existe des outils de benchmarks pour à peu près tous les types de systèmes :
• pour les serveurs web (notamment apache) ;
• pour les bases de données ( MySQL, PostgresSQL) ;
• pour les File Systems et les disques ;
• pour le serveur FTP, de messagerie... ;
• pour les CPU, le réseau ;
• etc...

8 2953 TG PA 00
Séquence 5
Continuité de service : haute
disponibilité
Bien maintenant que tout est installé et configuré aux petits oignons, vous
désirez goûter à un repos à priori bien mérité... Que nenni ! Votre rôle en
tant qu'administrateur et réseau est certes que tout fonctionne correcte-
ment, mais aussi et surtout que votre architecture soit fiable et " survive
" aux nombreux désastres qui ne manqueront pas vous tomber dessus :
crashs disques, incendies, tremblements de terre, etc. ! Quelle dure vie que
la notre, mais c'est aussi pour cela que l'on aime l'informatique. Heureuse-
ment des solutions existent pour se prémunir de tous ces maux et de faire
en sorte que la nuisance pour l'utilisateur soit quasi-nulle. Bien, mainte-
nant que le contexte est posé, intéressons-nous à nos objectifs.

u Durée indicative : 4 heures

u Capacités attendues en fin de séquence


•A  voir conscience des problématiques de haute-disponibilité.
• Être capable de proposer des solutions permettant la continuité de services.
• Comprendre les différentes modes de sauvegarde afin de choisir celui adapté
Page 55
à la situation.

u Contenu
1. Les éléments vitaux à surveiller................................................................................ 56
1A. La disponibilité des services........................................................................................ 56
1B. La disponibilité des données...................................................................................... 56
1C. La tolérance aux catastrophes................................................................................... 56
2. Notions importantes pour la Haute-Disponibilité......................................... 56
2A. Fiabilité et Disponibilité.................................................................................. 56
2B. La méthode des « 9 »...................................................................................... 57
3. Des outils.......................................................................................................... 58
4. Les sauvegardes............................................................................................... 59
4A. La sauvegarde complète................................................................................. 59
4B. La sauvegarde différentielle........................................................................... 61
4C. La sauvegarde incrémentielle......................................................................... 62
4D. Le support de sauvegarde.............................................................................. 63

8 2953 TG PA 00
1. Les éléments vitaux à surveiller

1A. La disponibilité des services


La " disponibilité des services ", c'est principalement pour cela que l'on vous paye, car
c'est là que l'entreprise gagne de l'argent directement ou bien via des outils indispen-
sables à son fonctionnement comme un site Web Marchand, un serveur de fichiers ou
bien encore un serveur de messageries. Imaginez maintenant une panne arrêtant l'un
de ces services. Le manque à gagner ou bien le manque de productivité pour l'entreprise
est tout simplement gigantesque ! Cela peut représenter énormément d'argent et causer
une perte de confiance des clients. Il est donc important d'assurer la disponibilité des
services. Mais que seraient des services sans données associées ?

1B. La disponibilité des données


On parle aussi d'intégrité des données. Dans la vie d'une entreprise, il est impensable
de se satisfaire de la perte de données, même dans le cas de données qui ne sont pas
critiques. Ces données représentent les trésors de toute entreprise, et c'est à vous de faire
en sorte que ces trésors ne se volatilisent pas !

1C. La tolérance aux catastrophes


La tolérance aux catastrophes et autres " coups du sort " paraît une idée farfelue mais
Séquence 5
les catastrophes, cela n'arrive pas qu'aux autres ! Même si la probabilité d'un incendie,
un tremblement de terre ou une inondation reste (heureusement) relativement faible,
Continuité cela n'est pas à négliger. Et encore, si certains de vos serveurs sont hébergés dans des
de service : haute
zones à fort risques vous feriez bien de suivre ces petits conseils. En effet, à notre époque
disponibilité
moderne, la quantité astronomique de données échangées impose aux sociétés de four-
Page 56 nir un service continu pour leurs clients. Imaginez-vous un service téléphonique inter-
rompu parce qu'à l'autre bout du monde le bâtiment hébergeant des serveurs critique
a pris feu ?

2. Notions importantes pour la haute-disponibilité


Vous vous en doutez, gérer des systèmes critiques hautement disponible (on parle d'High
Availibility dans la langue de Shakespeare) n'est pas une chose simple. Nous allons donc
voir quelques bases et concepts important à avoir en tête lorsque vous mettrez en place
votre infrastructure et vos systèmes.

2A. Fiabilité et disponibilité


Non ce n'est pas la même chose ! La fiabilité permet de mesurer la continuité d'un
service, c'est-à-dire l'absence de pannes. Vous avez déjà sûrement vu, sur les documen-
tations constructeurs, un sigle : MTBF (" Mean Time Between Failure "), que l'on peut
grossièrement traduire par temps moyen entre panne. Cela permet d'avoir une indica-
tion sur la durée de vie espérée d'un composant.
Bien sûr un système comporte de nombreux composants matériels et logiciels, chacun
ayant son MTBF qui lui est propre, on parle alors pour les systèmes complexes de MTTF
(" Mean Time To Failure ") qui permet d'évaluer le temps qui s'écoule jusqu'à l'arrêt d'un
service ou à la panne d'un composant ou d'un logiciel. Ça y est vous avez mal à la tête ?

8 2953 TG PA 00
On peut alors parler du MTTR (" Mean Time To Repair ") qui permet de connaître l'inter-
valle de temps où un service est indisponible c'est-à-dire jusqu'à son rétablissement. Tout
cela, nous permet d'écrire les formules suivantes, afin de calculer la disponibilité d'un
système (qui dépend de la fiabilité de ses composants) :

Autrement dit, si l'on veut obtenir un système qui soit fiable on a deux leviers d'action :
• soit obtenir un MTTF fort, c'est-à-dire que l'intervalle entre deux pannes du système
est grand ;
• soit obtenir un MTTR faible, c'est-à-dire que le temps pour rétablir mon système est
le plus court possible.
Bien évidemment réunir ces deux conditions serait l'idéal...
Maintenant vous me détestez et vous vous dites que même au Scrabble ces acronymes
et formules ne vous serviront à rien. Erreur ! Mais comme je suis un gars sympa, on va
essayer d'expliquer ça autrement.
Séquence 5
2B. La méthode des " 9 "
Continuité
Il existe une autre méthode pour évaluer le niveau de disponibilité. Cette dernière est de service : haute
plus accessible, mais moins précise. En fait, elle consiste à ne va pas tenir compte de la disponibilité
fréquence des pannes mais uniquement de leur durée afin d'évaluer le niveau de dispo-
nibilité. Cette méthode est la méthode dite de la " méthode des 9 ". Les " 9 " c'est bon Page 57
pour la santé qu'ils disaient. Eh bien sachez que pour votre serveur aussi ! Cette méthode
consiste à évaluer la durée d'arrêt cumulée du service sur un an. Si par exemple vous ne
pouvez accepter qu'un arrêt cumulé de 5 minutes sur un an alors votre service doit être
disponible 99,999 % du temps. Comment on calcule cela ? Eh bien grâce à un " simple "
produit en croix. Voyons cela :
• 100% de disponibilité représente sur un an 365 jours de 24 h soit 8 760 h ou encore
525 600 minutes (Ú 8 760*60).
• Voyons maintenant ce que représente, en minute, 99,999 % de fiabilité sur un an. Il
suffit de calculer 99,999% de 525 600 minutes. Cela donne le calcul (99,999 * 525 600) /
100 soit 525 594,74 minutes de fonctionnement cumulé. Ce résultat représente donc
une tolérance de 5 minutes de pannes sur un an. En effet, 525 600-525  594,74 = 5,256
minutes.

8 2953 TG PA 00
Le tableau ci-dessous représente une généralisation du calcul précédent en fonction du
nombre de " 9 ".

Nombre de 9 Durée approximative d'arrêt cumulée du service sur 1 an


2 neuf : 99 % 88 heures (!!!)
3 neuf : 99,9 % 9 heures
4 neuf : 99,99 % 1 heure
5 neuf : 99,999 % 5 minutes
6 neuf : 99,9999 % 30 secondes
Il est évident que l'on évitera de parler de haute Disponibilité en dessous de 3 neuf...
Tous les services n'ont pas besoin d'attendre le niveau d'excellence des 6 " neuf ", car
comme vous vous en douter, plus l'on gagne en disponibilité et plus les coûts s'envolent,
que vous hébergiez vous-mêmes le service ou que vous fassiez appel à un tiers ! À vous
de mettre en adéquation vos besoins et votre budget.
Maintenant que le décor est planté, voyons plus avant les différents critères à surveiller
afin de garantir la haute disponibilité pour un service critique :
• Évaluer le volume de données ainsi que les performances nécessaires au bon fonc-
tionnement du service.
• Être capable de définir le niveau de disponibilité voulu (avec si possible le temps de
rétablissement).
Séquence 5 • Prendre en compte l'aspect financier.
• A-t-on besoin de prévoir de nouvelles configurations logicielles et/ou matérielles ?
Continuité
de service : haute • Mettre en place la surveillance du service et planifier la maintenance préventive et
disponibilité corrective.
• Dispose-t-on des compétences en interne ou devra-t-on faire appel à une société
Page 58
extérieure concernant la problématique de la haute disponibilité ?
• Suis-je capable d'identifier clairement les différents points critiques de mon archi-
tecture (SPOF : Single Point Of Failure, matériel ou logiciel) qui pourraient conduire
à l'arrêt d'un service ?
Ces critères vous aideront à construire une politique HD (haute disponibilité) cohérente
et fonctionnelle.

3. Des outils
Il existe des outils qui pourront nous aider dans notre quête de la HD !
• Onduleurs (UPS : Uninterruptible Power System) : cela peut paraître bête, mais sans
courant point d'informatique... Et si la panne devait durer, assurez-vous que l'ondu-
leur est capable d'arrêter proprement le serveur via un signal.
• Alimentation redondante : deux ou même trois alimentations pour se protéger en
cas de défaillance de l'alimentation principale.
• Utilisation du RAID : voir la séquence 1
• Cartes réseaux additionnelles : on est capable de créer une interface réseau virtuelle
qui va regrouper plusieurs interfaces physiques grâce au Channel Bonding (que l'on
retrouve aussi sur de nombreux switchs).
• Réplication des bases de données : permet de basculer facilement les données d'une

8 2953 TG PA 00
base sur une autre machine.
• Utiliser des Systèmes de Fichiers Journalisés.
• Changement à chaud des périphériques (Hotplug) : est-on capable de brancher-
débrancher un disque dur suite à une panne ou est-on obligé d'arrêter le système
(changement à froid) ?
• Climatisation et hygrométrie : eh oui on évite d'installer la salle serveur dans un
sauna ou un hammam...
• Surveillance de l'état du système : on va surveiller la température des différents
composants ainsi que le bon fonctionnement des ventilateurs.
• Redémarrage à distance de la machine : notamment grâce au Wake-On-Lan (réveil
par le réseau), pour éviter de devoir prendre l'avion en urgence pour un simple
reset.
• Accès Distant : dans le même ordre d'idée, un tunnel SSH vous évitera bien des
tracas.
• Remontée des événements : à vous de mettre en place les bon outils (à vos scripts s'ils
n'existent pas déjà) afin de surveiller vos systèmes RAID, Chanel Bonding et autres !
• Sauvegardes : complètes, différentielles, incrémentielles.

4. Les sauvegardes
Précédemment, nous avons mis en avant les principes permettant de créer un système
Séquence 5
fiable (haute disponibilité) afin d'héberger des services critiques pour l'entreprise. Mais
si malgré tous nos efforts, l'impensable arrivait, l'horrible se produisait, emportant dans Continuité
le néant nos " To " de données si précieuses ? Devra-t-on repartir à zéro ? Heureusement de service : haute
disponibilité
non, car nous avions pris la peine de sauvegarder !!! Les sauvegardes : l'assurance-vie de
vos données ! Il faut savoir qu'il existe principalement 3 modes de sauvegarde : complètes,
Page 59
différentielles, incrémentielles.

4A. La sauvegarde complète


La sauvegarde complète a pour but de sauvegarder toutes les données présentent sur le
support au moment de la-dite sauvegarde. C'est la sauvegarde " bête ". Je prends tout
et je sauvegarde tout ! Ce mode est très gourmand en espace de stockage et en temps.
Si vous sauvegardez chaque jour votre disque dur, au bout d'une semaine vous aurez à
stocker 7 fois la taille de vos données, et ce, même si aucune donnée n'a été modifiée !
Ce type de sauvegarde se suffit à lui-même mais sert aussi de base pour les deux autres
modes que nous allons voir un peu plus loin dans cette séquence.
Voyons un exemple d'utilisation de cette méthode de sauvegarde et de ses conséquences.
Imaginons que lundi, vous désiriez sauvegarder le contenu de votre disque estimé à 1 Go.
Votre sauvegarde fera donc logiquement elle aussi 1 Go et contiendra exactement les
mêmes fichiers que ceux de votre disque. C'est plutôt une bonne chose !
Vous travaillez efficacement et rajoutez 1 fichier d'1 Go le reste du contenu étant inchan-
gé. Votre sauvegarde fera donc 2 Go. Vous me suivez toujours ? Le " problème " c'est
que vous venez de créer 2 fichiers de sauvegarde différents qui contiennent quasiment
la même chose car un seul fichier a changé depuis la dernière sauvegarde. Pas très effi-
cace tout de même. Bien sûr les tailles des fichiers sont volontairement importantes pour
marquer le coup. Imaginons maintenant que vous créez mercredi un nouveau fichier de

8 2953 TG PA 00
2 Go (Eh oui vous êtes en forme !). La sauvegarde fera donc au total 4 Go (1 + 1 + 2 Ú
4) alors qu'au final vous n'avez effectué que pour 2 Go de changement depuis la veille.
En résumé, la taille totale de mon jeu de sauvegarde (lundi + mardi + mercredi) fait 1 +
2 + 4 soit 7 Go et pour revenir dans l'état de mercredi il me suffit d'avoir la sauvegarde
complète de mercredi. Allez un petit schéma pour la route.

Séquence 5

Continuité
de service : haute
disponibilité

Page 60

8 2953 TG PA 00
4B. La sauvegarde différentielle
La sauvegarde différentielle est un mode plus fin que la sauvegarde complète sur
laquelle elle se base. Ici, la sauvegarde différentielle inclut l'ensemble des fichiers modi-
fiés depuis la dernière sauvegarde complète. Elle nécessitera donc moins de temps que
la sauvegarde complète et surtout beaucoup moins d'espace disque. En cas de problème
il suffira de disposer de la sauvegarde complète de base ainsi que de la dernière sauve-
garde différentielle.
Reprenons notre petit scénario précédent. Le lundi nous faisons notre première sauve-
garde du disque qui sera donc la sauvegarde complète de base. Lors de la sauvegarde du
mardi, on ne copiera que le nouveau fichier d'1 Go que nous avons créé. C'est beaucoup
mieux ! Et que se passe-t-il lors de la sauvegarde du mercredi ? Eh bien comme la sau-
vegarde se focalise sur les changements par rapport à la sauvegarde complète de base,
vous sauvegarderez uniquement les deux nouveaux fichiers respectivement d'1 Go et
de 2 Go créés mardi et mercredi. Zut ce n'est pas super non plus, car ma sauvegarde du
mardi contenait déjà le nouveau fichier d'1 Go !
Au final, la taille totale de mon jeu de sauvegarde fera 1 + 1 + 3 soit 5 Go. Pour revenir
dans l'état de mercredi il me faut avoir la sauvegarde complète du lundi et la sauvegarde
différentielle de mercredi. Voici toujours le petit schéma qui va bien.

Séquence 5

Continuité
de service : haute
disponibilité

Page 61

8 2953 TG PA 00
4C. La sauvegarde incrémentielle
La sauvegarde incrémentielle est le mode souvent privilégié dans le cas de sauvegardes
fréquentes. Ce mode permet également de revenir à un point précis dans le temps mais
cette fois-ci, on ne sauvegarde que les fichiers qui ont été modifiés depuis la dernière
sauvegarde (base ou incrémentielle). Ce mode est le plus rapide et le plus économe en
termes d'espace de stockage pour les sauvegardes quotidiennes. Le problème est que
Séquence 5 si vous venez à perdre une sauvegarde incrémentielle, la chaîne se trouvant rompue,
Continuité
l'ensemble des sauvegardes incrémentielles ultérieures seront alors inutilisables !!!
de service : haute
Et voici le retour de notre scénario. Après la sauvegarde complète de lundi, la sauvegarde
disponibilité
du mardi ne comportera que le nouveau fichier d'1 Go et la sauvegarde du mercredi ne
Page 62
comportera que le nouveau fichier de 2 Go (seule nouveauté depuis la sauvegarde du
mardi). Au final, la taille totale de mon jeu de sauvegarde est de 1 + 1 + 2 soit 4 Go. Pour
revenir dans l'état de mercredi il me faut avoir la sauvegarde complète du lundi ainsi que
les sauvegardes incrémentielles de mardi ET de mercredi. Si par malheur la sauvegarde
de mardi était perdue ou corrompue la sauvegarde de mercredi serait inutilisable !!!
Schéma quand tu nous tiens :

8 2953 TG PA 00
Séquence 5

Continuité
de service : haute
disponibilité

Page 63

4D. Le support de sauvegarde


On le voit bien chaque mode de sauvegarde possède ses avantages et ses inconvénients.
À vous de choisir le bon en fonction de vos impératifs de sécurité et d'espace disque.
Maintenant que vous avez choisi votre mode de sauvegarde, voyons où vous pouvez
stocker vos précieuses sauvegardes :
• Sur des CD/DVD/ Blu-ray : tout dépendra de vos besoins en espace de stockage.
Attention ! Les disques ne disposent que d'une durée de vie limitée (qui dépend
aussi de la qualité de fabrication et des conditions de stockage). L'avantage est
que vous pouvez facilement stocker vos sauvegardes dans différents endroits géo-
graphiquement éloignés les uns des autres, vous protégeant ainsi des catastrophes
naturelles, vols et autres incendies.
• Sur des disques durs externes : même si cela est très pratique pour un ordinateur
personnel, cette solution est peu adapté au domaine professionnel, notamment en
raison de l'espace disque fortement limité.
• Sur des serveurs distants : via FTP ou autre. Là encore, l'éloignement géographique
par rapport aux données stockées est un gros avantage.
• Sur des NAS ou SAN : vous profitez d'une énorme capacité de stockage en plus des
avantages du raid.
• Sur bandes : c'est encore à ce jour le processus le plus fiable.

8 2953 TG PA 00
Voilà pour clore notre séquence parlant de haute disponibilité (HD), on peut dire qu'il
n'y a aucune solution miracle tout dépend de la situation :
–– Quel est votre budget de sauvegarde ?
–– Quel est le support de sauvegarde le plus approprié en fonction de la taille de
vos données ?
–– Combien de temps doit-on garder ces sauvegarde ?
–– Où seront-elles stockées ?
–– Fera-t-on de multiples copies de ces sauvegardes ?
–– Combien de temps durera le processus de sauvegarde ?
–– Pour répondre à ces questions, posez-vous en d'autres :
–– Que faut-il sauvegarder ? À quelle fréquence ?
–– Combien coûterait à la société la perte de ces données ?

Séquence 5

Continuité
de service : haute
disponibilité

Page 64

8 2953 TG PA 00
Séquence 6
Sécurité des accès
+ accès distant
Sécuriser l'accès à votre serveur est bien sûr une chose très importante.
Vous ne voulez pas que le premier venu puisse venir détruire votre créa-
tion et les nombreuses heures passées à tout configurer dans les moindres
détails ! Cela se révèle encore plus important lorsque vous devez avoir un
contrôle distant de votre machine. En effet, qui dit risque plus grand dit
protection plus grande. C'est ce que nous allons voir dans cette séquence.

u Durée indicative : 6 heures

u Capacités attendues en fin de séquence


• Comprendre les différentes notions de base de la sécurité.
• Connaître les moyens sécurisés permettant d'accéder à distance à une machine.

u Contenu
1. Les mots de passe........................................................................................................ 66
2. Connexion à distance sécurisée.............................................................................. 67 Page 65
2A. Quelques notions de sécurité.................................................................................. 67
2B. Comment garantir l’intégrité....................................................................... 67
2B1. La notion d’empreinte.................................................................................. 67
2B2. Chiffrer à l’aide d’un algorithme secret....................................................... 69
2B3. Chiffrer à l’aide d’un algorithme public et d’une clé secrète..................... 70
2B4. Mélanger les chiffrements est-ce raisonnable ?......................................... 74
2B5. Récapitulons tout cela................................................................................... 77
2B6. La taille de la clé est-ce important ?............................................................ 77
2B7. Garantir la sécurité et la distribution des clés publiques........................... 77
3. Comment administrer à distance un serveur de manière sécurisée : SSH
ou VPN............................................................................................................78
3A. SSH................................................................................................................. 78
3B. VPN................................................................................................................. 79

8 2953 TG PA 00
1. Les mots de passe
Une des façons les plus simples et les plus répandues de protéger l'accès à un système
consiste à mettre en place un mot de passe. Cette méthode d'authentification peut aussi
être une très importante faille de sécurité si l'on met en place de mauvais mots de passe
ou encore pire, si l'on en met pas du tout ! Ce mode de protection peut paraître évident
certes mais quelques précautions sont tout de même à prendre en compte.
Qu'est ce qu'un bon mot de passe ? Et bien le but est de créer un mot de passe qui soit
suffisamment résistant et difficile à deviner. Pour cela, on veillera à :
• utiliser un mot de passe suffisamment long (8 caractères et plus) ;
• être capable de taper rapidement le mot de passe afin d'éviter toute mémorisation
par un éventuel " espion " ;
• utiliser une combinaison de chiffres, de caractères spéciaux, de lettres en minuscules
et en majuscules ;
• changer fréquemment de mot de passe. La fréquence de ces changements dépen-
dra du niveau de confidentialité souhaité.
Cela nous aidera à poser de bonnes bases pour notre politique de mots de passe au sein
de l'entreprise. Mais en tant qu'administrateur système et réseau, voilà ce qu'il faudra à
tout prix éviter :
• utiliser des informations facilement récupérables comme mot de passe : nom,
prénom, date de naissance, nom des parents ou des enfants, numéro de sécurité
Séquence 6 sociale, nom de votre chien/ chat, etc ;
• prendre des mots du dictionnaire (peu importe la langue) ;
Sécurité des accès
+ Accès distant • utilise des " ruses " (qui n'en sont pas car elles sont facilement modélisés) telles
qu'écrire un mot à l'envers, un mot précédé d'un chiffre, des suites de lettres ou de
Page 66 chiffres sur le clavier comme " azertyuiop " ou encore " aqwse " qui forme un " V " ;
• taper son mot de passe alors que quelqu'un regarde par dessus votre épaule ;
• ne JAMAIS écrire son mot de passe sur un papier, un email ou le dire par téléphone ;
• et surtout ne jamais divulguer votre mot de passe, et ce à quiconque. On a tous
été confronté à une situation ou vous êtes dans l'impossibilité physique de vous
connecter à une machine alors qu'un collègue, lui, le peut. On est alors tenté de lui
donner notre mot de passe, ERREUR !!!
Maintenant voici quelques astuces afin de créer facilement des mots de passe qui ne
soient pas trop durs à retenir. Vous pouvez utiliser une phrase que vous aimez, par
exemple " le Réseau et la Plongée sont mes 2 passions ", et vous n'utilisez que la pre-
mière lettre de chaque mot :
" lRelPsm2p ". Avouez qu'il est plus facile de retenir la phrase " clé " plutôt que le
mot de passe effectif. Vous pouvez aussi " mixer " deux mots, par exemple bts et
SIO : " bStIsO ".
Voilà donc quelques conseils pour choisir de " bons " mots de passe. En tant qu'admi-
nistrateur, c'est à vous que revient la tâche d'apprendre à vos utilisateurs ces diverses
techniques. Cependant, il est bien souvent plus facile d'imposer aux utilisateurs les mots
de passe, vous serez ainsi assuré du respect des règles de sécurité que vous aurez mis en
place.
Si vraiment vous n'avez aucune imagination, vous pouvez utiliser des générateurs de
mots de passe tels que " pwgen " ou bien " apg ", tous deux disponibles sous Linux. Il

8 2953 TG PA 00
existe aussi des générateurs sous Windows ou même en ligne, attention tout de même,
seuls les logiciels libres vous permettront d'être fixé sur leur qualité (leur code étant
visible par tous).

2. Connexion à distance sécurisée


Se connecter à distance sur une machine que l'on doit administrer permet de s'affran-
chir de nombreux problèmes mais aussi de gagner du temps. Néanmoins, il ne faut
pas négliger la sécurité de connexion. En effet, dès qu'il y'a communication le risque
d'espionnage est réel. Ce risque se trouve décuplé lorsque l'on passe par des réseaux
" publiques " (internet) et, en généralisant, tout ce qui n'est pas votre réseau local.

2A. Quelques notions de sécurité


Afin de bien comprendre la suite de ce cours, nous allons être obligé de voir un petit
peu de vocabulaire.
• La confidentialité : pour éviter qu'un espion ne vienne mettre son nez dans nos
affaires, afin de garder confidentiels nos échanges, et ce, avec des correspondants
clairement identifiés, on a de tout temps eu recours au chiffrement d'informations. Le
chiffrement consiste donc à rendre un message original " clair " (non chiffré), et donc
lisible par tous, en un message chiffré et donc incompréhensible. Afin de rendre ce
message à nouveau lisible le destinataire du message chiffré devra posséder la " clé "
permettant de déchiffrer le message.
• L'authentification : cela consiste à s'assurer de l'identité de notre correspondant. Séquence 6
• La non-répudiation : " Votre signature vous engage ". Si vous signer un document
Sécurité des accès
vous ne pourrez pas par la suite contester ledit document. + Accès distant
• L'intégrité : il est parfois nécessaire de s'assurer que les informations que je viens de
recevoir sont conformes à l'original, qu'elles n'ont été modifiées (falsifiées) en aucune Page 67
façon.

2B. Comment garantir l'intégrité


Comme nous venons de la voir précédemment, l'intégrité permet de valider que les
informations reçues sont conformes à l'original. Mais comment garantir l'intégrité ?

2B1. La notion d'empreinte


Une façon relativement simple de garantir l'intégrité d'un document consiste à créer une
"empreinte ". Pour ce faire, grâce à un algorithme de hachage (hash algorithm), on crée
une clé permettant d'identifier de manière quasi-certaine un document. Tout comme
vos empreintes digitales vous identifient de manière unique mais ne sont pas " vous ",
l'empreinte d'un fichier identifie un message mais ne contient pas ledit message. Cette
clé (empreinte) sera très différente en fonction du message original : Ainsi, deux mes-
sages identiques produiront deux empreintes identiques, alors que deux messages diffé-
rents produiront des empreintes très différentes. Encore plus fort, deux messages quasi-
identiques produiront des empreintes très différentes ! On pourra ainsi vérifier qu'un
message n'a pas été modifié. Et bien sur, il est impossible de reconstituer à partir d'une
empreinte le fichier dont elle est issue (on parle d'algorithme à sens unique).

8 2953 TG PA 00
On utilise principalement deux algorithmes :
• MD5 (Message Digest 5) qui utilise des empreintes de 128 bits ;
• SHA (Secure Hash Alogrithm) qui utilise entre 160 bis (SHA-1) et 512 bits (SHA-512)
pour les empreintes.

Séquence 6

Sécurité des accès


+ Accès distant

Page 68

Voyons ensemble encore un peu de théorie dans le domaine du chiffrement de données.

8 2953 TG PA 00
2B2. Chiffrer à l'aide d'un algorithme secret
Cette méthode simple et à priori efficace consiste à inventer un " langage " secret (en
fait un algorithme) qui ne sera connu que des personnes autorisées. On utilise cet algo-
rithme aussi bien pour chiffrer que pour déchiffrer.
Néanmoins on se trouve confronté à deux problèmes majeurs.
La force de cette méthode de chiffrement repose sur le fait que la méthode de chiffre-
ment soit secrète. Or plus on va utiliser cette méthode avec un nombre important de
correspondants et moins notre secret le restera. En effet, c'est bien connu, un secret ne le
reste que s'il est connu d'une seule personne, commencez à le divulguer et vous courrez
à votre perte. En fait, Il suffit qu'un " espion " arrive à déchiffrer l'algorithme de chiffre-
ment et l'ensemble de nos messages n'auront plus de secret pour lui.
Allez un exemple. Bien entendu, les exemples suivants sont volontairement simplistes,
ils ne sont là que pour expliquer simplement les principes de fonctionnement et ne sont
évidemment pas utilisés en informatique car même un processeur des années 80 pourrait
déchiffrer de tels algorithmes en quelques millièmes de secondes... !!! Mais ce n'est pas
le problème car notre but est de comprendre le principe alors allons-y.
Deux utilisateurs, " Alice " et " Bob ", veulent s'échanger des informations. Ils se mettent
tout les deux d'accord sur le un principe de chiffrement et suivent la procédure suivante :

Séquence 6

Sécurité des accès


+ Accès distant

Page 69

Déroulons un exemple d'échange de message entre Alice et Bob.


Message en clair de Alice pour Bob : " voici mon message "
Message chiffré : " iciov nom egassem "

8 2953 TG PA 00
Comme vous l'aurez deviné, l'algorithme secret consiste simplement à inverser l'ordre de
lettres de chaque " mot " : la 1re lettre devient la dernière, la 2e devient l'avant-dernière
et ainsi de suite. Si je communique avec une seule personne, je diffuse mon " secret " à
cette seule personne, mais si je dois communiquer avec 10 000 personnes ? Mon secret
a de grande chance de ne plus en être un. Et puis il y a de bonnes chances que mon "
secret " soit percé par un espion (il faut dire que l'algorithme n'est pas très solide mais
encore une fois, ce n'est qu'un exemple).
Voyons maintenant une autre technique de chiffrage qui consiste à chiffrer à l'aide d'un
algorithme public et d'une clé secrète.

2B3. Chiffrer à l'aide d'un algorithme public et d'une clé secrète


C'est pour éviter les problèmes vus précédemment que l'on a introduit les chiffrements
avec clés. Quel en est le principe ? Cette fois-ci on va utiliser un algorithme " public ",
qui peut donc être connu par tout un chacun. La confidentialité sera introduite grâce à
un paramètre secret : la clé de chiffrement. Sans cette clé aucun déchiffrement ne sera
possible. La force de cette méthode de chiffrement repose donc sur la difficulté à trou-
ver la clé utilisée. Ainsi vous pouvez utiliser une même méthode de chiffrement avec un
nombre important de correspondants, vous n'aurez qu'à faire varier les clés utilisées :

Séquence 6

Sécurité des accès


+ Accès distant

Page 70

8 2953 TG PA 00
Pour illustrer ce type de chiffrement prenons un exemple proche du chiffrement avec un
algorithme secret :
Message clair de Alice pour Bob : " voici mon message "
Algorithme : décaler de + " valeur_clé " l'alphabet
Message chiffré si la clé vaut 2 : " xqkek oqp oguucig "
Message chiffré si la clé vaut 3 : " yrlfl prq phvvdjh "
Ici, même si l'algorithme est connu de tous, la force du chiffrement réside dans la " dif-
ficulté " de trouver la clé correspondante puisqu'il n'existe pas une unique solution mais
bien plusieurs, tout dépendant de la clé utilisée, Vous pouvez donc communiquer avec
de nombreux correspondants différents en utilisant le même algorithme. Vous n'aurez
qu'à faire varier la clé pour obtenir des messages chiffrés différents.
En réalité on utilise deux principes de fonctionnement différents avec les clés.
Le premier principe est le chiffrement symétrique : dans ce mode, on chiffre et déchiffre
avec la même clé. L'émetteur chiffre son message avec la clé et le destinataire déchif-
frera le message chiffré grâce à une clé identique à celle utilisée par l'émetteur. Cette
technique possède de solides avantages. En effet, elle est beaucoup plus rapide que le
chiffrement asymétrique (cf ci-après) et est très robuste lorsque l'on utilise des clés de
grande taille. Néanmoins cette méthode de confidentialité n'offre aucune authentifi-
cation (sauf si il n'y a que deux correspondants) et surtout, son point faible réside dans
la nécessité de s'échanger la clé. Un espion pourrait donc la copier lors de l'échange et
cette probabilité ne fait qu'augmenter au cas où un grand nombre de personnes vou-
draient échanger avec la même clé. En effet, il faut autant de copies de la clé que de Séquence 6

participants. Sécurité des accès


+ Accès distant

Page 71

8 2953 TG PA 00
Un autre problème prend forme lorsque l'on doit communiquer avec un nombre impor-
tant de correspondants. On utilisera une clé différente pour chaque participant. Cela
devient rapidement un vrai casse-tête : il faut garder en mémoire quelle clé correspond
à chaque personne. De plus cela génère un grand nombre de clés différentes. Ainsi, si
pour 3 personnes il suffit d'avoir 3 clés différentes, pour 4 personnes il en faut 6, pour
10 on a besoin de 45 clés et pour 100 il en faut... 4950 !!! La formule à utiliser est pour
" N " participants, on a besoin de " N(N-1)/2 " clés différentes. Faites vous un dessin si
vous n'êtes pas convaincus.
Cela est donc très contraignant et surtout pose encore un problème accru de sécurité lors
de l'échange de clé (risque d'interception).
Résumons :

Avantages • Beaucoup plus rapide que le chiffrement asymétrique (cf ci-après)


• Très robuste lorsque l'on utilise des clés de grande taille
Inconvénients • Nécessite un procédé sécurisé afin d'échanger les clés
• Chaque binôme de correspondant nécessite une clé unique. Plus le nombre de
correspondants augmente et plus la gestion de clés devient un réel problème
• Ne permet que la confidentialité, pas d'authentification ni de non-répudiation.
Voici quelques algorithmes utilisant le chiffrement symétriques :
• AES (Advanced Encryption Standard) ;
• Blowfish ;
Séquence 6 • DES (Data Encryption Standard) ;
• 3DES (Triple-Des).
Sécurité des accès
+ Accès distant Le deuxième principe est le chiffrement asymétrique : dans ce mode, on possède un
couple clé privée / clé publique. Cette méthode permet de combiner confidentialité et
Page 72 authentification. Tout ce qui sera chiffré avec l'une ne pourra être déchiffré qu'avec
l'autre. Chaque clé du couple est unique et les deux clés sont associées. La force de ce
chiffrement repose sur l'impossibilité, ou plutôt l'extrême difficulté, de calculer la clé
privée à partir de la clé publique.
Voyons un peu plus en détail le chiffrement asymétrique.
Pour commencer, nous avons d'un côté la clé privée qui, comme son nom l'indique, ne
doit être diffusée à personne et aucun double ne doit être créé. Cette clé est unique,
strictement personnelle et confidentielle. De l'autre côté, nous avons la clé publique qui
peut être distribuée librement à tout un chacun. C'est une clé unique dont on peut se
procurer une copie chez un " tiers de confiance ".
À partir des ces deux clés, le principe de fonctionnement est relativement simple. Les
messages chiffrés avec une clé privée ne pourront être déchiffrés qu'en utilisant la clé
publique correspondante et les messages chiffrés avec un clé publique ne pourront être
déchiffrés qu'en utilisant la clé privée correspondante. On parle de couple " clé publique
/ clé privée ".
Ainsi avec notre exemple, si Alice chiffre des données avec sa propre clé privée, Bob
devra avoir une copie de la clé publique d'Alice pour les déchiffrer. Bob, pour répondre
à Alice, pourra utiliser la clé publique d'Alice, qui utilisera sa clé privée pour déchiffrer
les données.

8 2953 TG PA 00
Comme vous l'aurez compris, il n'est pas possible d'utiliser la même clé pour chiffrer et
déchiffrer un même message. En effet même si les clés sont liées mathématiquement, les
clés sont très différentes.
Un autre avantage de ce chiffrement asymétrique est que si vous arrivez à déchiffrer un
message avec la clé publique d'Alice, alors vous pouvez être sûr que le message émane
d'Alice ou tout du moins qu'il a été chiffré à l'aide de la clé privée d'Alice. Un message
ne peut être déchiffré avec une clé publique que si le message a été chiffré avec la clé
privée correspondante. Cela nous permet d'obtenir l'authentification des messages. En
effet seule Alice est supposée avoir un exemplaire de sa clé privée car on ne partage
JAMAIS une clé privée.
Ainsi pour être sûr qu'une seule personne, par exemple Bob, sera capable de lire un
message, il faut le chiffrer avec la clé publique de Bob, car seul Bob détient la clé privée
permettant de déchiffrer un message chiffré avec la clé publique de Bob.
Prenez une aspirine ce n'est pas fini...
Si maintenant Alice veut faire comprendre à Bob que le message émane bien d'elle, alors
elle ne pourra pas utiliser la clé publique de Bob. Cela ne sera pas suffisant pour prouver
l'authenticité du message car de nombreuses personnes disposent de la clé publique de
Bob. Non, Alice devra utiliser la clé privée d'Alice pour chiffrer le message. Ainsi Bob sera
assuré que le message provient bien d'Alice et de personne d'autre. C'est donc un très
gros avantage par rapport au chiffrement symétrique qui ne permet pas l'authentifica-
tion car les clés sont les mêmes pour chaque correspondant.
Le chiffrement asymétrique est beaucoup plus lent que le chiffrement symétrique parce Séquence 6

qu'il utilise des opérations mathématiques beaucoup plus complexes et nécessite donc Sécurité des accès
un temps de traitement accru. Par contre gérer les clés est beaucoup plus facile. Si vous + Accès distant
devez communiquez avec 1 000 personnes, vous n'aurez qu'à envoyer 1 000 fois votre
clé publique (1 seule clé publique envoyée à tout le monde : la vôtre), au lieu de garder Page 73
note des clés de chacun des 1 000 correspondants (1 clé symétrique par correspondant).
De plus certains algorithmes asymétriques permettent aussi la non-répudiation.

Avantages • Gestion et distribution des clés beaucoup plus aisée qu'avec le chiffrement
asymétrique
• Permet l'authentification et la non-répudiation
Inconvénients • Beaucoup plus lent que le chiffrement symétrique
• Demande de nombreux calculs intensifs.
Voici quelques algorithmes utilisant le chiffrement asymétrique :
• Diffie-Hellman ;
• DSA (Digital Signature Algorithm) ;
• RSA (Rivest-Shamir-Adleman).
Résumons un peu
Si vous voulez de la confidentialité, vous allez chiffrer votre message avec la clé publique
du destinataire : seul le destinataire possède la clé privée pour le déchiffrer.
Si vous voulez de l'authentification, vous allez chiffrer votre message avec votre propre
clé privé. Le destinataire est ainsi assuré que s'il arrive à déchiffrer le message grâce à la
clé publique de l'émetteur, le message a bien été chiffré par la seule personne possédant
la clé privée correspondante : l'émetteur. Mais attention !!! Si vous chiffrer avec votre clé
privée, n'importe qui pourra déchiffrer votre message car il suffit d'avoir pour cela votre
clé publique ! On n'a ici que de l'authentification. Ah ! Quel dilemme !

8 2953 TG PA 00
2B4. Mélanger les chiffrements est-ce raisonnable ?
Pour trouver une solution à notre problème évoqué à la fin du paragraphe précédent,
c'est-à-dire avoir de la confidentialité et de l'authentification, cela consiste à utiliser à la
fois du chiffrement avec la clé publique et la clé privée.
Nous avons vu au début de la séquence que l'on peut utiliser le hachage pour être sur
qu'un message n'a pas été modifié. Reprenons notre exemple d'Alice qui désire envoyer
un message chiffré et authentique à Bob. Si Alice utilise sa clé privée pour chiffrer
l'empreinte du message (on dit qu'elle " signe " son message), l'authenticité de cette
empreinte est donc acquise pour Bob qui pourra utiliser la clé publique d'Alice pour
déchiffrer l'empreinte.
Et pour la confidentialité, il suffit à Alice de chiffrer son message avec la clé publique
de Bob.

Séquence 6

Sécurité des accès


+ Accès distant

Page 74

8 2953 TG PA 00
On a ainsi l'authenticité, la confidentialité et même en bonus l'intégrité. Mais le pro-
blème reste bien sur le fait que l'on est obligé de chiffrer (et donc de déchiffrer) deux
fois au lieu d'une.
Efficace mais très coûteux en terme de performance. L'idéal serait d'utiliser les clés symé-
triques, beaucoup plus économes en temps de traitement. Mais le problème de sécurité
se pose lors de l'échange des clés. En effet si notre clé symétrique se fait intercepter par
un espion, celui-ci pourra alors déchiffrer tous nos messages et même usurper notre
identité !
Encore une fois la solution réside dans l'emploi des deux méthodes : chiffrement asymé-
trique ET symétrique ! En fait, ici on va appliquer la technique du chiffrement asymé-
trique sur le chiffrement symétrique ! Ils sont fous les informations !!!!
Séquence 6
Dans ce cadre, ce sont donc les clés symétriques qui vont être chiffrées par la méthode
du chiffrement asymétrique. On sécurisera ainsi l'échange de clés symétriques. Pour Sécurité des accès
le reste le fonctionnement et les fonctionnalités offertes restent les mêmes : intégrité + Accès distant
(grâce à l'empreinte), authenticité (grâce à la signature de l'empreinte) et chiffrement
(ici symétrique). Page 75

8 2953 TG PA 00
Séquence 6

Sécurité des accès


+ Accès distant

Page 76

À partir de ce moment là, Alice et Bob pourront discuter de manière sécurisée en utili-
sant le chiffrement symétrique.

8 2953 TG PA 00
2B5. Récapitulons tout cela
Symètrique Asymétrique
Clés Une seule clé est partagée entre deux Une personne possède une clé publique
(ou plus) personnes et l'autre possède la clé privée
correspondante
Échange de clés Doit s'exécuter grâce à des moyens Une clé publique est disponible pour
sécurisés tout un chacun tandis que la clé privée
correspondante est gardée secrète par
le propriétaire
Vitesse Moins complexe et donc plus rapide Plus complexe et donc plus lent
Usage Souvent utilisé pour chiffrer des fichiers Souvent utilisé pour la distribution de
et des canaux de communication clés et les signatures digitales
Sécurité fournie Confidentialité Confidentialité, authentification et non-
répudiation

2B6. La taille de la clé est-ce important ?


Eh bien plus vous utiliserez des clés de grandes longueurs et plus il sera compliqué pour
une personne mal intentionnée de la déchiffrer. Malheureusement il sera aussi plus
compliqué (comprendre plus coûteux en temps de calcul) pour chiffrer et déchiffrer vos
messages. Il s'agit donc de trouver un équilibre entre sécurité et confort d'utilisation.
Une solution consiste à attribuer une durée de vie aux clés symétrique, de telle sorte que
celle-ci soit plus courte que le temps nécessaire pour " cracker " cette clé. Séquence 6

2B7. Garantir la sécurité et la distribution des clés publiques Sécurité des accès
+ Accès distant
Garantir la sécurité et le distribution des clés publiques est en effet quelque chose
d'essentiel pour que toute cette belle théorie puisse fonctionner. On a donc besoin pour Page 77
cela d'une personne de confiance, qui puisse nous garantir que la clé publique distribuée
par Alice est bien celle d'Alice et qu'elle n'a pas été contrefaite. Cette " personne " de
confiance est appelée le tiers de confiance ou encore " Certificate Authority (CA) ". Son
existence même repose sur le fait que l'on puisse lui faire confiance, elle qui détient de
très nombreuses clés publiques.
Lorsqu'un tel organisme m'envoie la clé publique d'Alice, elle m'envoie surtout un cer-
tificat. Ce certificat comporte des informations sur le propriétaire de la clé publique qui
sont signées avec la clé privé du CA ! Ainsi si l'on fait confiance au CA, on considère alors
que l'identité du propriétaire de la clé publique envoyée est bien la bonne.
Ces certificats utilisent la norme x509. Voici les différents composants d'un certificat x509 :
• version ;
• numéro de Série ;
• signature de l'algorithme ;
• émetteur ;
• validité ;
• société ou personne identifié par ce certificat ;
• clé publique et algorithme utilisé ;
• signature du CA et algorithme utilisé.

8 2953 TG PA 00
Exemple de certificat :
Version: 3 (0x2)
Numéro de série: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Emetteur: C = FR, L = Paris, O = Hervé Schauer Consultants Files XE9,
OU = autorité de certification, CN = HSC CA / Email = ca@hsc.fr
Validité:
Pas Avant: 8 juin 1999 14:52:40 GMT
Pas après: 7 juin 2000 14:52:40 GMT
Objet: C = FR, L = Paris, O = Hervé Schauer Consultants Files XE9, OU =
Equipe technique, CN = Ghislaine Labouret / Email = Ghislaine.Labouret
@ hsc.fr
Sous réserve info à clé publique:
Algorithme à clé publique: rsaEncryption
RSA à clé publique: (1024 bits)
Module (1024 bits):
00: b3: 4e: 75:76: fc: 4c: c3: bd: 61:6 c: 14:41:08 f: 47:
...
Exposant: 65 537 (0x10001)

3. Comment administrer à distance un serveur


de manière sécurisée : SSH ou VPN
3A. SSH
Séquence 6 SSH (Secure Shell) est un protocole qui permet de créer un tunnel sécurisé afin d'assurer
la sécurité (confidentialité) et l'authentification des communications entre un serveur et
Sécurité des accès
+ Accès distant un client.
SSH utilise le principe du chiffrement symétrique pour la confidentialité (3DES, BlowFish)
Page 78 ainsi que l'authentification par clé privées (RSA, DSA…). Il utilise ainsi les principes que
nous venons de voir précédemment.
Le protocole SSH existe en deux versions (SSH-1 et SSH-2) mais on considère la version
SSH-1 comme étant obsolète. SSH fonctionne de base en utilisant le port 22.
Le serveur SSH fonctionnera avec 2 couples de clés publiques/privées :
• 1 couple pour l'authentification ;
• 1 couple pour la communication en elle-même.
Voici le fonctionnement global de SSH :

8 2953 TG PA 00
SSH vous permettra d'administrer efficacement votre serveur en ligne de commande
(voire graphiquement) à distance et ce de manière sécurisée. Nous verrons tout cela plus
en détail dans les TP.
SSH est facilement utilisable sous Linux et sous Windows, notamment grâce à Putty (un
client telnet et SSH).

3B. VPN
VPN (Virtual Private Network) permet lieu aussi de créer un tunnel sécurisé entre deux
postes. Mais contrairement à SSH, qui ne transmettra de manière chiffrée que les com-
mandes à l'intérieur du tunnel, le VPN chiffrera la TOTALITE des informations transitant
entre les postes.
Il existe de nombreux protocoles pour créer un VPN :
• IPSec
• PPTP
• L2F
• L2TP
• OpenVPN
• PPP + SSH
Ces différents protocoles peuvent fonctionner à différents niveaux de la couche OSI :
• au niveau liaison : PPTP, PPTP, L2F et L2TP ;
• au niveau réseau : IPSec ;
Séquence 6
• au niveau application : PPP + SSH.
Sécurité des accès
+ Accès distant

Page 79

Les deux machines pourront alors communiquer comme si elles étaient dans le même
réseau local. On utilise en effet normalement des adresses privées pour identifier les
connexions sécurisées VPN ( 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16).

8 2953 TG PA 00
Séquence 7
Dépannage
Malgré tous vos efforts et vos idées de génie, un ordinateur n'étant qu'un
assemblage de composants électroniques sur lequel on va greffer de nom-
breuses strates logicielles, la grande méchante panne arrivera. C'est mal-
heureusement certain.

u Durée indicative : 1 heure

u Capacités attendues en fin de séquence


• S avoir organiser et mener un dépannage efficace.
• Connaître les outils facilitant la gestion des dépannages.

u Contenu
1. Les étapes d'un bon dépannage............................................................................... 82
2. Un exemple de logiciel de gestion de parc : GLPI................................................ 83
3. Quelques liens utiles..................................................................................................... 87

Page 81

8 2953 TG PA 00
1. Les étapes d'un bon dépannage
Fort de toutes les nouvelles connaissances que vous avez accumulées à travers les diffé-
rents cours, vous montez un serveur digne de ce nom et vous pensez pouvoir goûter un
repos bien mérité. Eh bien non, dans le monde formidable qui est le nôtre et malgré vos
multiples efforts, le pire arrivera forcément, à savoir la panne ! Qu'elle soit logicielle et/
ou matérielle son unique but sera de ruiner votre journée (ou plus dans le cas des plus
virulentes). Eh bien soit, retroussons-nous les manches et essayons de dépanner notre
serveur.
L'art du dépannage efficace consiste à isoler la défaillance au sein d'un enchevêtrement
complexe de causes possibles. Certains problèmes seront en effet détectés très facile-
ment alors que d'autres vous demanderont des efforts non négligeables. Bien entendu,
tout cela vous demandera de bien connaître le fonctionnement de votre serveur afin
d'être réellement efficace. Le mieux est de procéder par étapes. Il est possible de résumer
la méthodologie du dépannage en 7 étapes que voici :
1. Quel est le problème ?
Essayez de décrire le plus clairement et le plus simplement possible ce qui ne va pas. Ici
on parle de fiche incident ou ticket devant faire apparaître :
• date/ heure du problème ;
• description rapide du problème rencontré ;
• urgence / criticité de la panne ;
• de qui émane le ticket ;
Séquence 7
• qui devra résoudre le problème ;
Dépannage • en combien de temps ;
• état d'avancement de la résolution.
Page 82
2. Quel sont les logiciels et le matériel utilisés ?
Collectez des informations sur le système et ses composants. Ici on va recueillir des infor-
mations sur le processeur, la mémoire, l'OS, le matériel spécifique (configuration RAID,
cartes additionnelles…), les logiciels installés avec leur version, les firmwares.
À cette étape, il faut essayer de rassembler les informations concernant les messages
d'erreurs apparus, disséquer les logs (cf séquence 2 de ce support).
3. Analyse du problème
Essayez de rechercher des pannes similaires sur les sites officiels des fabricants, sur les
forums, les mailings lists, les FAQ (Foire Aux Questions) ou bien encore sur Internet
notamment sur Google. Bien souvent, un simple copier/coller du message d'erreur pro-
duit vous épargnera souvent de nombreuses heures de recherches ! Bref, Internet étant
une source gigantesque d'information, la solution à votre problème aura probablement
été rencontrée par quelqu'un d'autre auparavant, et sera donc documentée.
En fonction des informations récupérées vous pourrez éliminer un grand nombre de
causes possibles et surtout, trouver les causes probables du dysfonctionnement.
4. Préparation du plan d'attaque !
Endossez vos habits de général d'État-major et développez un plan d'attaque digne de
ce nom. Grâce à votre analyse précédente vous pourrez décider des différentes actions
afin de circonscrire le problème. Ici la règle d'or est : " On ne change qu'un seul para-

8 2953 TG PA 00
mètre à la fois ! ". C'est la seule façon de vous y retrouver et de voir les changements
induits par votre action.
5. A l'attaque !
Mise en oeuvre du plan.
6. Résultats du plan : Que s'est-il passé ?
A-t-on réussi à circonscrire le problème ? Si " Oui ", on continue vers l'étape suivante. Si
" Non ", alors retour à l'étape 4. Dans ce dernier cas, on est obligé de préparer un nou-
veau plan d'attaque.
7. Analyse des résultats
Le but est de documenter au maximum la résolution du problème, afin de gagner un
maximum de temps, au cas où le problème se poserait à nouveau.

2. Un exemple de logiciel de gestion de parc : GLPI


Comme nous venons de le voir, dépanner un ordinateur (et à fortiori un serveur) ne
s'improvise pas. Meilleure sera votre organisation et plus vous serez à même d'identifier
rapidement la panne et de la circonscrire.
Ici l'amateurisme et la non-organisation n'ont pas leur place ! En effet, de votre capacité
à résoudre rapidement les pannes dépend votre crédibilité en tant que bon technicien,
et avouez que " ha oui cette panne me dit quelque chose mais je ne me souviens plus
comment on l'avait résolue... " ça ne fait pas très " pro " ! Organisez-vous, vous gagnerez
Séquence 7
du temps et marquerez des points vis à vis de votre hiérarchie ou de vos clients.
Il existe de nombreux logiciels qui permettent de gérer au mieux les problèmes rencon- Dépannage

trés en les recensant (gestion des tickets) tout en ayant un oeil sur l'inventaire du parc.
Page 83
Aujourd'hui, le plus répandu est GLPI. Voici quelques captures d'écran montrant les dif-
férentes possibilités de ce logiciel.

8 2953 TG PA 00
a) Liste des ordinateurs du parc

Séquence 7

Dépannage

Page 84

8 2953 TG PA 00
b) Détails d'un ordinateur

Séquence 7

Dépannage

Page 85

8 2953 TG PA 00
c) Liste des tickets

Séquence 7

Dépannage

Page 86

8 2953 TG PA 00
d) Détail d'un ticket

Séquence 7

Dépannage

Page 87

3. Quelques liens utiles


GLPI : www.glpi-project.org. Logiciel libre de gestion de parc informatique. Permet de
gérer les tickets.
Bugzilla : www.bugzilla.org. Logiciel permettant de rechercher et d'enregistrer des bugs.
FAQ : www.faqs.org.

8 2953 TG PA 00

Vous aimerez peut-être aussi