Vous êtes sur la page 1sur 119

Hirarchie des chiers systme Unix

Chapitre 17 : Hirarchie des chiers systme Unix

Utilit ? 1. Pour connatre le contenu des principaux directories.

2. Pour connatre lutilit des principaux directories.

3. Pour savoir congurer les PATH (utilisateurs + root).

4. Pour surveiller les directories systme pouvant grossir en raison de chiers log.

Formation permanente ARS

Hirarchie des chiers systme Unix

Les difcults pratiques

17.1 Les difcults pratiques


Longtemps la hirarchie a t non standard et trs dpendante de chaque OS. Une certaine convergence apparat actuellement (effet des diffrents standards Posix and co ? ou rarfaction des Unix ?).

Difcult de portage de shell scripts et autres applications. Difcult de gestion en environnement htrogne.
Exemple : FreeBSD 2.2.x HP-UX 9.07 SunOS 4.1.4

/usr/sbin/chown /bin/chown /usr/etc/chown

Formation permanente ARS

Hirarchie des chiers systme Unix

La solution du lien symbolique

17.2 La solution du lien symbolique


Ne pas oublier la commande "ln -s chier1 chier2". IRIX 5.3 SunOS 4.1.4 On fera par exemple sur la machine SGI :

/usr/bsd /usr/ucb

% ln -s /usr/bsd /usr/ucb % ls -l /usr drwxr-xr-x 2 root sys 512 Aug 28 1996 bsd/ lrwxr-xr-x 1 root sys 3 Aug 22 1996 ucb -> bsd/ % echo $PATH /usr/local/bin:/bin:/usr/ucb:/usr/bin:/usr/sbin:/etc:/usr/etc % which rlogin /usr/ucb/rlogin

Formation permanente ARS

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

17.3 Panorama dun systme Unix moderne type


Voici larbre des rpertoires dun Unix moderne (les informations donnes ici le sont pour un systme Linux Red Hat 4.0) :

bin

dev

etc

lib

proc

sbin

tmp

usr

var

bin

include

lib

local

sbin

src

log

mail

run

spool

tmp

bin

etc

include

lib

sbin

Formation permanente ARS

/sbin :

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient les binaires systme (do le s dans son nom) primordiaux utiliss pendant le boot de la machine. Il rside dans la mme partition que / ce qui garantit sa disponibilit ce moment-l o dautres partitions ne sont pas encore disponibles. Exemple de commandes :

/bin :

arp, dump, fsck, halt, ifconfig, init, ldconfig, mkfs, restore, shutdown, swapon, etc.

Il contient les binaires primordiaux utiliss pendant le boot de la machine. Il rside dans la mme partition que / ce qui garantit sa disponibilit ce moment-l o dautres partitions ne sont pas encore disponibles. Exemple de commandes :

bash, chmod, chown, cp, date, dd, df, echo, hostname, kill, login, mkdir, mknod, mount, ps, rm, sync, umount, vi, etc.

Formation permanente ARS

/usr/sbin :
du boot.

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient des binaires systme (do le s dans son nom) non primordiaux et plus utiliss pour la gestion au jour le jour de la machine. Il rside dans une mme partition pouvant ne pas tre disponible pendant les premires tapes

Exemple de commandes :

adduser, in.rlogind, inetd, lpd, lpc, pwck, sa, showmount, traceroute, vipw, etc.

/usr/bin :
Il contient la plupart des commandes Unix pour utilisateurs (plusieurs centaines en gnral).

Formation permanente ARS

/usr/local/sbin : Il contient les commandes Unix dadministration propres au site ou propres la machine. /usr/local/bin :
Il contient la plupart des commandes Unix utilisateurs installes localement.

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Formation permanente ARS

/lib :

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient en gnral les librairies dynamiques primordiales pour le fonctionnement du systme. En gnral, on ny trouve pas de librairie statique .a. Exemple de chiers :

/usr/lib :

ld.so, libc.so.5, libm.so.5, etc.

Il contient les librairies dynamiques non primordiales au fonctionnement du systme ainsi que les librairies statiques .a de programmation en langage C. Linker avec -ltoto revient linker avec /usr/lib/libtoto.a. Exemple de chiers :

/usr/local/lib :

libm.a, libm.so, libndbm.a, libtermcap.a, , etc.

Il contient les librairies dynamiques ou statiques installes localement.

Formation permanente ARS

/usr/include :

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient les chiers .h de programmation en langage C.

<foo.h> fait rfrence "/usr/include/foo.h" sauf option de compilation explicite.

/usr/local/include :
Il contient les chiers .h installs localement.

Formation permanente ARS

/usr/src :
trouve.

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Quand il existe, ce directory contient en principe les sources du systme Unix sur lequel on le

/sys :
Plus gnralement, on trouve /usr/sys. Ce directory contient les chiers modules .o ncessaires recompiler uniquement un noyau Unix.

Formation permanente ARS

10

/etc :

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient les chiers de conguration des divers utilitaires primordiaux assurant le fonctionnement du systme.

/usr/local/etc :
Il contient les chiers de conguration de divers utilitaires non ncessaires au fonctionnement du systme.

Formation permanente ARS

11

/dev :

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient les chiers spciaux du systme permettant daccder aux ressources physiques de la

/proc :

machine comme les disques durs, la mmoire RAM etc. Il contient une reprsentation sous forme de chiers et directories des processus en mmoire.
% echo $$ 23247 % cd /proc/23247 % ls -l total 0 -r--r--r-1 besancon lrwx-----1 besancon -r-------1 besancon lrwx-----1 besancon dr-x-----1 besancon pr--r--r-1 besancon -rw------1 besancon lrwx-----1 besancon -r--r--r-1 besancon -r--r--r-1 besancon -r--r--r-1 besancon % ls -d [a-z]*

sysadmin sysadmin sysadmin sysadmin sysadmin sysadmin sysadmin sysadmin sysadmin sysadmin sysadmin

0 64 0 64 0 0 0 64 0 0 0

Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep

22 22 22 22 22 22 22 22 22 22 22

14:30 15:45 15:45 15:45 15:45 15:45 15:45 15:45 14:29 15:45 15:45

cmdline cwd -> [0001]:1523515394 environ exe -> [0801]:10251 fd maps mem root -> [0801]:2 stat statm status

Formation permanente ARS

12

Hirarchie des chiers systme Unix


cmdline cpuinfo devices dma filesystems interrupts ioports kcore kmsg ksyms loadavg locks mdstat meminfo modules mounts net pci profile scsi

Panorama dun systme Unix moderne type


self smp stat sys uptime version

% ls /proc/sys/kernel/ domainname file-nr file-max hostname

inode-max inode-nr

osrelease ostype

panic securelevel

version

A noter que plusieurs constructeurs proposent ce type daccs aux processus et leurs proprits. Cela dit, toutes les mthodes proposes diffrent.

Formation permanente ARS

13

/var :

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Il contient des informations variables plus ou moins faible dure de vie. /var/run Fichiers mmorisant des PID de dmons systme. /var/spool/lpd Fichiers temporaires pour les impressions. /var/mail Emails, sur les systmes rcents et les systmes AT&T. /var/spool/mail Idem pour les systmes BSD plus anciens. /var/log Fichiers de traces de divers utilitaires. /var/tmp Fichiers temporaires crs par les utilisateurs.

Formation permanente ARS

14

Hirarchie des chiers systme Unix

Panorama dun systme Unix moderne type

Lorigine de /var vient des machines diskless. Autant on peut partager

/usr parce quil est gros

en taille, autant on ne peut pas laisser les machines diskless crire ensemble dans les mmes chiers variables dans /usr. Avoir une arborescence

/var permet dviter cela. On duplique uniquement pour chaque machine diskless la partie /var alors que /usr est mis en commun.

Un autre objectif dans la cration de /var est de pouvoir utiliser /usr en lecture seule, sans critures autorises dedans. En pratique, assez difcile raliser.

Formation permanente ARS

15

Dmarrage dune station Unix

Chapitre 18 : Dmarrage dune station Unix

Plusieurs tapes : 1. la ROM 2. le secteur de boot 3. le chargeur secondaire 4. le noyau le processus init 5. les scripts de dmarrage qui donneront lieu lenchainement sur la gure suivante :

Formation permanente ARS

16

Dmarrage dune station Unix

ROM

Bootstrap program

Kernel initialization Hardware probing


single user

Single user code Creation of swapper init


multi user

init executes rc scripts

/etc/ttys (BSD)

init read terminal configuration file

/etc/inittab (Sys V)

getty process started

getty process started

Formation permanente ARS

17

Dmarrage dune station Unix

Etape n 1 : la ROM

18.1 Etape n 1 : la ROM


Les rles de la ROM sont de :

inspecter de ltat matriel de la machine permettre lutilisateur dinteragir si besoin (programme moniteur) :
prcision du disque de boot consultation dadresses mmoire modication de valeurs dans EEPROM recherche des priphriques sur le bus SCSI options de boot (single ou multi)

charger en mmoire vive le secteur de boot dun certain priphrique et excuter ce


programme.

commandes de tests hardware

Formation permanente ARS

18

Dmarrage dune station Unix

Etape n 1 : la ROM

Problmes : si ne fonctionne pas

panne matrielle

le programme moniteur donne laccs la slection du disque de boot permettent de protger le moniteur

certains constructeurs

protection du programme moniteur en cas de problme (retour usine, super mot de passe secret connu du constructeur) programme moniteur particulier chaque constructeur ; plus ou moins riche selon chaque constructeur

Formation permanente ARS

19

Dmarrage dune station Unix

Etape n 1 : la ROM

Copie dcran de BIOS PC montrant la possibilit de mettre un mot de passe

Formation permanente ARS

20

Dmarrage dune station Unix

Etape n 2 : le secteur de boot

18.2 Etape n 2 : le secteur de boot


(boot block en anglais) Le secteur de boot dun priphrique (en gnral un disque dur) est charg en mmoire vive par la ROM puis excut. Il va lui mme charger et excuter un programme plus gros qui poursuivra le dmarrage de la machine. Ce secteur de boot rend le disque stratgique.

Le chargement en mmoire vive du secteur de boot se fait en faisant appel uniquement aux rmwares des priphriques. Aucun pilote logiciel (device driver ) nentre en jeu.
Formation permanente ARS 21

Dmarrage dune station Unix

Etape n 2 : le secteur de boot

La cration de ce secteur de boot est un mcanisme propre chaque constructeur. Par exemple sur Solaris :

# installboot /usr/platform/uname -i/lib/fs/ufs/bootblk \ /dev/rdsk/c0t3d0s0

Formation permanente ARS

22

Dmarrage dune station Unix

Etape n 3 : le chargeur secondaire

18.3 Etape n 3 : le chargeur secondaire


Le chargeur secondaire est le programme charg depuis le secteur de boot puis excut. Il a une connaissance partielle de la structure dun disque Unix de faon y trouver certains chiers. Il charge en mmoire vive le noyau Unix et plus si ncessaire (par exemple sur Solaris, il chargera

/kernel/unix puis les modules de /kernel jusqu ce que le noyau soit capable de monter
par lui mme des lesystems) puis lexcute.

Le chargement en mmoire vive du chargeur secondaire se fait en faisant appel uniquement aux rmwares des priphriques. Aucun pilote logiciel (device driver ) nentre en jeu.
Formation permanente ARS 23

Dmarrage dune station Unix

Etape n 4 : le chargement du noyau Unix

18.4 Etape n 4 : le chargement du noyau Unix

Le noyau est charg puis excut par le chargeur secondaire. Pas de convention en ce qui concerne le noyau : Systme FreeBSD Linux SunOS Solaris 5.0 5.4 Solaris Noyau

/kernel /vmlinuz /vmunix /kernel/unix /kernel/genunix combin /platform/uname -i/kernel/unix

Formation permanente ARS

24

Dmarrage dune station Unix

Etape n 4 : le chargement du noyau Unix

Le noyau Unix permet la conguration du systme :

prise en compte des priphriques conguration logicielle des interfaces rseau cration de toutes les structures mmoire ncessaires lancement des deux premiers processus de la machine, PID 0 et 1. Ce ne sont pas des processus
Unix "traditionnels" puisquils sont construits ex nihilo (par opposion aux processus ultrieurs qui auront tous un parent).

Formation permanente ARS

25

Dmarrage dune station Unix

Etape n 4 : le chargement du noyau Unix

Par exemple sur Linux :


% ps -ax PID TT 0 ? 1 ? 2 ? STAT D IW D TIME 0:52 0:00 0:00 COMMAND swapper /sbin/init pagedaemon

Par exemple sur Solaris :


% ps -edf UID root root root root PID 0 1 2 3 PPID 0 0 0 0 C 0 0 0 0 STIME Oct 10 Oct 10 Oct 10 Oct 10 TTY ? ? ? ? TIME 0:18 0:31 0:01 29:51 CMD sched /etc/init pageout fsflush

Formation permanente ARS

26

Dmarrage dune station Unix

Etape n 5 : init et ses scripts de dmarrage

18.5 Etape n 5 : init et ses scripts de dmarrage


Cest le programme

init qui assure le reste du dmarrage de la machine Unix via le lancement de

scripts de dmarrage personnalis et la surveillance des ports srie.

Il y a deux mthodes pour lancer les scripts : la mthode la BSD la mthode la SystemV Elles seront vues ci-aprs.

Tout processus est cr par un processus parent excutant un fork(), cest--dire une copie de lui mme (code + data), suivi dun exec() pour remplacer le contenu de cette copie par un nouveau programme.

Formation permanente ARS

27

Dmarrage dune station Unix

Etape n 5 : init et ses scripts de dmarrage

fork() Init PID 1 init

PID 278 exec()

getty

PID 278 exec()

login

PID 278 exec() exit() csh fork() csh

PID 278 wait() exit()

PID 397 exec()

grep

Formation permanente ARS

28

Dmarrage dune station Unix

Les scripts BSD de dmarrage

18.6 Les scripts BSD de dmarrage


(par exemple DEC ULTRIX, SunOS, FreeBSD, etc)

init na pas de notion de niveaux, dtats. init : /etc/rc Les particularits de la station sont regroupes dans le script /etc/rc.local appel par /etc/rc.
Un shell script caractre gnral est appel par le programme

Cf annexe A pour un exemple de chier /etc/rc. Cf annexe B pour un exemple de chier /etc/rc.local.

Ce mcanisme tombe en dsutude car trop fouillis.

Formation permanente ARS

29

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

18.7 Les scripts SystemV de dmarrage


(par exemple AIX, DEC OSF1, HP-UX, IRIX, Solaris, Linux) Ce mcanisme est reconnaissable la prsence du chier /etc/inittab. Par exemple sur Solaris (chier incomplet) :

fs::sysinit:/etc/rcS >/dev/console 2<>/dev/console </dev/console is:3:initdefault: s0:0:wait:/etc/rc0 >/dev/console 2<>/dev/console </dev/console s2:23:wait:/etc/rc2 >/dev/console 2<>/dev/console </dev/console s3:3:wait:/etc/rc3 >/dev/console 2<>/dev/console </dev/console s5:5:wait:/etc/rc5 >/dev/console 2<>/dev/console </dev/console s6:6:wait:/etc/rc6 >/dev/console 2<>/dev/console </dev/console

Formation permanente ARS

30

Syntaxe de /etc/inittab
label : niveaux : action : commande

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Les niveaux :
SVR4 Run States S 0 1 2 3 4 5 6 Single-user (leaves lesystems mounted) Power off Single-user/System-admin (leaves only / mounted) Multi-user, network disabled Multi-user, network enabled (not used) PROM Monitor level Halt & reboot to default state

Formation permanente ARS

31

Les actions : respawn wait once


terminera.

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

le programme init devra relancer la commande du champ commande chaque fois quelle se

Lorsque init rentre dans le niveau considr, il doit lancer la commande du champ commande et en attendre la n avant de passer la ligne suivante de inittab. Si la commande na pas t lance au pralable, init la lance et passe la ligne suivante ; en

boot La commande de cette ligne est excuter uniquement la premire fois que init lit le chier inittab. bootwait
La commande de cette ligne est excuter uniquement la premire fois que init lit le chier inittab ;

aucun cas, cette commande ne sera relance.

off

init attend la terminaison de la commande pour passer la ligne suivante. Si la commande prcise nest pas dj lance, init ignore cette ligne ; sinon init tue le processus associ la commande en lui envoyant les signaux SIGTERM puis SIGKILL.

Formation permanente ARS

32

initdefault sysinit

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Cette ligne prcise le run-level dans lequel init se place au dbut de son invocation. Il ne peut y avoir quune ligne de ce type.

La commande est excute avant quinit tente daccder la console.

Formation permanente ARS

33

Structure classique de /etc/inittab

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

La structure classique (linux, Solaris, etc.) est la suivante (exemple extrait de Solaris) :

fs::sysinit:/etc/rcS >/dev/console 2<>/dev/console </dev/console is:3:initdefault: s0:0:wait:/etc/rc0 >/dev/console 2<>/dev/console </dev/console s2:23:wait:/etc/rc2 >/dev/console 2<>/dev/console </dev/console s3:3:wait:/etc/rc3 >/dev/console 2<>/dev/console </dev/console s5:5:wait:/etc/rc5 >/dev/console 2<>/dev/console </dev/console s6:6:wait:/etc/rc6 >/dev/console 2<>/dev/console </dev/console
On trouve parfois aussi les chiers /sbin/rc0, /sbin/rc1, /sbin/rc2, /sbin/rc3, etc. Ce sont des scripts. Tous ces scripts sont btis sur le mme modle.

Formation permanente ARS

34

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Prenons le cas dun script /etc/rc0. Sa structure est la suivante :


#! /sbin/sh if [ -d /etc/rc0.d ] then for f in /etc/rc0.d/K* { if [ -s ${f} ] then /sbin/sh ${f} stop fi } for f in /etc/rc0.d/S* { if [ -s ${f} ] then /sbin/sh ${f} start fi } fi

Formation permanente ARS

35

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Le principe : 1. Quand on entre dans le runlevel N on lance le script rcN. 2. Le script rcN lance des programmes dont le nom commence par la lettre K et situs dans

/etc/rcN.d.
Lenchanement de ces programmes se fait dans lordre alphabtique. Un argument est pass chaque programme : stop (cf le K pour Kill) 3. Le script rcN lance des programmes dont le nom commence par la lettre S et situs dans

/etc/rcN.d.
Lenchanement de ces programmes se fait dans lordre alphabtique. Un argument est pass chaque programme : start (cf le S pour Start)

Formation permanente ARS

36

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Exemple de script S :
#!/sbin/sh state=$1 set who -r if [ $8 != "0" ] then exit fi case $state in start) if [ $9 = "2" -o $9 = "3" ] then exit fi echo "Starting process accounting" /usr/lib/acct/startup ;; stop) echo "Stopping process accounting" /usr/lib/acct/shutacct ;; esac

Formation permanente ARS

37

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Exemple de script K :
#!/sbin/sh state=$1 set who -r if [ $8 != "0" ] then exit fi case $state in start) if [ $9 = "2" -o $9 = "3" ] then exit fi echo "Starting process accounting" /usr/lib/acct/startup ;; stop) echo "Stopping process accounting" /usr/lib/acct/shutacct ;; esac

Formation permanente ARS

38

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Moralit : les chiers contiennent la mme chose ; ils sont en fait identiques !
% ls -l *spc ls -l /etc/rc2.d/*spc lrwxrwxrwx 1 besancon lrwxrwxrwx 1 besancon

13 Nov 12 00:44 /etc//rc2.d/K20spc -> ../init.d/spc 13 Nov 12 00:44 /etc/rc2.d/S80spc -> ../init.d/spc

Via le mcanisme des liens symboliques (ou de liens hard), on regroupe au sein dun mme chier la partie dmarrage et la partie arrt.

Sur linux, on a affaire /etc/rc.d/init.d et aux rpertoires mais le principe dcrit prcdemment reste le mme.
Formation permanente ARS

/etc/rc.d/rc[0-9].d

39

Dmarrage dune station Unix


/etc

Les scripts SystemV de dmarrage

inittab

rc0

rc3

rc0.d

rc3.d

K08audit

K22cron

K30nfs

K38nis

S10syslog S18nis

S19nfs

S21audit

init.d audit cron lp nfs nis syslog

Formation permanente ARS

40

Dmarrage dune station Unix

Les scripts SystemV de dmarrage

Vos modications sont installer au choix : localises dans un chier extrieur spci dans /etc/inittab via une ligne du type

local:2:wait:sh /etc/rc.local > /dev/console 2>&1


Cest rechercher le comportement BSD. via des scripts S et K dans le rpertoire du bon runlevel :

-rwxr-xr-x 1 root lrwxr-xr-x 1 root -> ../init.d/ars*

sys sys

355 Jul 25 13 Jul 25

1996 /etc/init.d/ars* 1996 /etc/rc2.d/S99ars \

Formation permanente ARS

41

Dmarrage dune station Unix

Boot en single

18.8 Boot en single


Cest un mode particulier de dmarrage de la machine Unix : la machine Unix ne fonctionne pas encore en mode multi utilisateurs les fonctionnalits rseau ne sont pas encode actives

Utilit : intervenir sur la machine Unix soit pour rparer un problme soit pour installer une partie logicielle quil est impossible de faire ultrieurement (changement de librairie dynamique par exemple).

Formation permanente ARS

42

Dmarrage dune station Unix

Boot en single

Pour booter en single user, il faut le prciser au niveau du moniteur de la machine : Pour Linux, taper boot

single Pour Solaris, taper boot -s

Sur Sun, il faudra certainement rgler le type de terminal (pour pouvoir faire vi and co) :

TERM=sun export TERM

Formation permanente ARS

43

Arrt dune station Unix

Chapitre 19 : Arrt dune station Unix

Il faut suivre une procdure darrt du fait de laspect multiutilisateur : 1. Prvenir les utilisateurs 2. Signaler aux processus de se terminer proprement 3. Passer en single user 4. Flusher les disques avant dteindre (via la commande

sync).

Formation permanente ARS

44

Arrt dune station Unix

Commandes darrt et de redmarrage : shutdown, reboot, etc.

19.1 Commandes darrt et de redmarrage : shutdown, reboot, etc.

shutdown
2 syntaxes selon larchitecture : 1. AT&T : shutdown 2. BSD : shutdown

-g dlai -i tat [-h|-r] + dlai en secondes


message

halt reboot
Ralise un sync avant darrter les processeurs

kill -TERM 1

Provoque un redmarrage du systme.

Passage du systme de multi utilisateur en mono utilisateur

Formation permanente ARS

45

fasthalt, fastboot
1. #! /bin/sh

Arrt dune station Unix

Commandes darrt et de redmarrage : shutdown, reboot, etc.

Ils crent un chier /fastboot vitant de raliser un fsck au dmarrage de la machine.

# @(#)fastboot.sh 1.7 88/02/07 SMI; from UCB 4.2 PATH=/bin:/usr/bin:/usr/etc:$PATH export PATH cp /dev/null /fastboot reboot "$@"
2. #! /bin/sh

# @(#)fasthalt.sh 1.6 88/02/07 SMI; from UCB 4.2 PATH=/bin:/usr/bin:/usr/etc:$PATH export PATH cp /dev/null /fastboot halt $*

Formation permanente ARS

46

Arrt dune station Unix

Commandes darrt et de redmarrage : shutdown, reboot, etc.

Formation permanente ARS

47

Arrt dune station Unix

Commandes associes : w, users, finger, who

19.2 Commandes associes : w, users, finger, who


Quelques commandes pour voir qui est connect la machine :

Liste des utilisateurs connects : users

% users besancon besancon besancon besancon besancon besancon besancon besancon

Liste des utilisateurs connects avec un afchage plus complet : w


% w 10:59pm User besancon besancon besancon besancon besancon besancon besancon besancon up 16 days, 22:32, 8 users, load average: 0.16, 0.03, 0.01 tty login@ idle JCPU PCPU what console 17Oct100 3days 173:29 19:28 xterm -cu -j -tn vt100 -title XT ttyp0 Mon 8pm 3:48 11 vi 08-shutdown.tex ttyp1 Mon 8pm 3 56:39 1:35 bash ttyp2 Mon 8pm 3days bash ttyp3 Wed12pm 25:48 1 bash ttyp4 Wed12pm 21:40 134:45 1 bash ttyp5 Wed11pm 23:28 5 1 bash ttyp6 8:09pm 36 8 w

Formation permanente ARS

48

Liste des utilisateurs connects : nger


% finger Login besancon besancon besancon besancon besancon besancon besancon besancon Name ??? ??? ??? ??? ??? ??? ??? ???

Arrt dune station Unix

Commandes associes : w, users, finger, who

Liste des utilisateurs connects : who


% who besancon besancon besancon besancon besancon besancon besancon besancon console ttyp0 ttyp1 ttyp2 ttyp3 ttyp4 ttyp5 ttyp6 Oct Oct Oct Oct Nov Nov Nov Nov 17 30 30 30 1 1 1 2 19:45 20:17 20:17 20:17 12:31 12:31 23:26 20:09

TTY Idle When co Tue 19:45 p0 Mon 20:17 p1 1 Mon 20:17 p2 3d Mon 20:17 p3 1d Wed 12:31 p4 21: Wed 12:31 p5 23: Wed 23:26 p6 Thu 20:09

Where :0.0 :0.0 :0.0 :0.0 :0.0 :0.0 :0.0

Formation permanente ARS

49

Dclin sur la commande prcdente : who am i En un seul mot : whoami


% whoami besancon % who am i choc.unix.fr!besancon ttyp6 Nov 2 20:09

Arrt dune station Unix

Commandes associes : w, users, finger, who

Formation permanente ARS

50

Arrt dune station Unix

Commandes associes : w, users, finger, who

Quelques commandes pour prvenir une personne connecte la machine :

mesg [y|n]
% tty /dev/ttyp6 % mesg y % mesg n % finger Login besancon besancon besancon besancon besancon besancon besancon besancon

Lutilisateur indique par cette commande sil accepte que lon lui envoit des messages en crivant dans son terminal. Si un utilisateur refuse les messages, une astrisque apparait dans lafchage de finger :

Name ??? ??? ??? ??? ??? ??? ??? ???

TTY Idle When co Tue 19:45 p0 Mon 20:17 p1 1 Mon 20:17 p2 9 Mon 20:17 p3 1d Wed 12:31 p4 21: Wed 12:31 p5 23: Wed 23:26 *p6 Thu 23:16

Where :0.0 :0.0 :0.0 :0.0 :0.0 :0.0 :0.0

Formation permanente ARS

51

write

Arrt dune station Unix

Commandes associes : w, users, finger, who

Syntaxe : write

user tty

Formation permanente ARS

52

wall

Arrt dune station Unix

Commandes associes : w, users, finger, who

Pour envoyer un message tout le monde dun coup (wall == Write ALL).

Formation permanente ARS

53

Le noyau Unix

Chapitre 20 : Le noyau Unix

Parler dUnix, cest parler du noyau Unix tt ou tard.

Le noyau : un ensemble de fonctions, de procdures, de structures de donnes ralisant un certain nombre de tches un excutable lanc pendant le boot un excutable contenu dans / (en gnral)

Formation permanente ARS

54

Le noyau Unix

Les responsabilits du noyau :

fournir une interface dutilisation et de gestion efcace grer le CPU savoir piloter les diffrents types de priphriques grer les processus (cration des processus, ordonnancement, accounting) grer la mmoire (allocation aux processus, swap, paging) grer le systme de chiers (accs locaux, accs rseau, quotas) grer les autres ressources (entres/sorties, rseau etc.)

Formation permanente ARS

55

Le noyau Unix

Les tches de ladministrateur concernant le noyau :

assurer que le noyau du systme fonctionne correctement assurer que le noyau est congur pour reprsenter correctement le systme modier le noyau compiler le noyau

Formation permanente ARS

56

Le noyau Unix

Assurer la validit du noyau

20.1 Assurer la validit du noyau


Le boot de la machine Unix se compose des tapes : 1. Mode moniteur de la machine 2. Secteur de boot 3. Chargeur secondaire 4. Chargement du noyau cration du processus init 5. Scripts de dmarrage lancs par init Si le noyau est incorrect (raisons diverses), le boot ne peut pas se raliser.

Toujours avoir en rserve un noyau que lon sait tre correct.

En pratique, avoir au moins le noyau de dpart fourni par le constructeur.

Formation permanente ARS

57

Le noyau Unix

Congurer le noyau

20.2 Congurer le noyau


But : reter ltat actuel du systme. En particulier : De quels drivers a-t-on besoin ? Eliminer les drivers non ncessaires

gain de place mmoire pour dautres choses.

Congurer les tailles de diverses structures mmoires (appel smit sur AIX, sam sur HP-UX,

ndd sur Solaris).


La conguration du noyau est propre chaque constructeur. Chez certains cest plus ou moins interactif (linux, osf1).

Formation permanente ARS

58

Le noyau Unix

Modier le noyau

20.3 Modier le noyau


On peut modier le noyau pour : incorporer des correctifs (alias "patches") ; incorporer de nouvelles fonctionnalits (par exemple ajouter un pilote de graveur de CD-ROM) ; Ne pas oublier de gnrer dventuels chiers spciaux aprs incorporation dans un noyau dun nouveau driver. simplement linformer de la prsence de nouveaux priphriques.

Formation permanente ARS

59

Le noyau Unix

Modier le noyau

Exemple de patch constructeur pour SunOS 4.1.4 :


Patch Installation Instructions: Become superuser, cp tcx.o to /usr/sys/sun4m/OBJ after first saving the old version aside as a precaution. % su # mv /usr/sys/sun4m/OBJ/tcx.o /usr/sys/sun4m/OBJ/tcx.o.FCS # cp sun4m/tcx.o /usr/sys/sun4m/OBJ Rebuild the kernel. Refer to the Systems and Network administrations manual on how to configure a kernel. # cd /usr/sys/sun4m/conf # /etc/config GENERIC # cd ../GENERIC # make Preserve the original kernel, copy the new kernel to / and reboot. # mv /vmunix /vmunix# cp vmunix / # reboot

Formation permanente ARS

60

Le noyau Unix

Modier le noyau

Exemple de patch constructeur pour Solaris 2.x :


Patch Installation Instructions: -------------------------------For Solaris 2.0-2.6 releases, refer to the Install.info file and/or the README within the patch for instructions on using the generic installpatch and backoutpatch scripts provided with each patch. For Solaris 7-8 releases, refer to the man pages for instructions on using patchadd and patchrm scripts provided with Solaris. Any other special or non-generic installation instructions should be described below as special instructions. The following example installs a patch to a standalone machine: example# patchadd /var/spool/patch/104945-02 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate man pages.

Cest de plus en plus automatis. . .


Formation permanente ARS 61

Le noyau Unix

Compilation du noyau

20.4 Compilation du noyau


Cest un mcanisme propre chaque constructeur. Cf annexe C. Bien sr on noubliera pas la sauvegarde du noyau actuel pour pouvoir faire marche arrire.

A noter que la mise en place dun nouveau noyau sans rebooter peut conduire larrt du fonctionnement de certains programmes, par exemple "ps" :

# ps -ax ps: /dev/mem: error on ktextseg: Bad address ps: could not read kernel VM

Formation permanente ARS

62

Le noyau Unix

Compilation du noyau

Diffrences entre les systmes sources publiques et les systmes constructeurs : la compilation dun noyau implique la compilation de tous ses chiers sources. La compilation dun noyau linux est donc une procdure longue (de lordre de 6 minutes sur un bi-pentium Pro 200 MHz pour Linux). les Unix constructeurs ne fournissent pas les chiers sources mais par contre ils fournissent les chier .o rsultats de la compilation spare intermdiaire. La compilation dun noyau Unix constructeur revient : compilation de quelques chiers .c contenant lindication des pilotes installs, des tailles mmoirede certaines structures dition de liens des .o constructeurs et des .o locaux

Formation permanente ARS

63

Le noyau Unix

Noyaux modulaires

20.5 Noyaux modulaires


Le noyau Unix traditionnel est monolithique. Il est malais dy ajouter des drivers, dy modier des variables. La mode est aux modules chargeables dynamiquement dans le noyau. Ils ajoutent alors les nouvelles fonctionnalits au noyau pendant quil tourne sans ncessiter darrt. Par exemple sur Linux :
% lsmod Module soundcore vfat fat nfs lockd sunrpc ne 8390 Size 2628 9276 30400 28896 31496 53028 6668 6072 Used by 0 (autoclean) 0 (autoclean) 0 (autoclean) 3 (autoclean) 1 (autoclean) 1 (autoclean) 1 (autoclean) 0 (autoclean)

(unused) (unused) [vfat] [nfs] [nfs lockd] [ne]

Formation permanente ARS

64

Le noyau Unix

Noyaux modulaires

Par exemple sur Solaris o le noyau est compltement modulaire :


% modinfo Id Loadaddr 5 600ba000 7 600e1000 8 600b0a88 9 600f0000 10 6012a000 10 6012a000 11 60144000 11 60144000 12 600e5550 13 60037a48 14 600e4010 15 600b0548 16 6018c000 17 601a2000 18 601b8000 ... Size Info Rev Module Name 3b30 1 1 specfs (filesystem for specfs) 2bc8 1 1 TS (time sharing sched class) 4a4 1 TS_DPTBL (Time sharing dispatch table) 23538 2 1 ufs (filesystem for ufs) dc4b 226 1 rpcmod (RPC syscall) dc4b 1 1 rpcmod (rpc interface str mod) 2752b 0 1 ip (IP Streams module) 2752b 3 1 ip (IP Streams device) 11f3 1 1 rootnex (sun4u root nexus) 188 57 1 options (options driver) 14e8 12 1 sad (Streams Administrative drivers) 538 2 1 pseudo (nexus driver for pseudo) f059 32 1 sd (SCSI Disk Driver 1.255) 5f26 1 scsi (SCSI Bus Utility Routines) ca68 61 1 esp (ESP SCSI HBA Driver 1.250)

Formation permanente ARS

65

Disques durs

Chapitre 21 : Disques durs

21.1 Technologies
Plusieurs technologies de disques durs : ST-506, ESDI, SMD (Storage Module Device), ESMD, IPI, SCSI (1, 2, 3, Fibre Channel), IDE (ATA100, ATA133), Firewire, Disk On Flash, etc.

(source http://www.almaden.ibm.com/sst/)
Formation permanente ARS 66

Disques durs

Technologies

Perspectives :

(source http://www.almaden.ibm.com/sst/)

Formation permanente ARS

67

Disques durs

Technologies

Structure dun disque dur (quelle que soit sa technologie) :

(source http://www.almaden.ibm.com/sst/)

Formation permanente ARS

68

Disques durs

Technologies

La tte dun disque dur plane au dessus du plateau magntique :

(source http://www.almaden.ibm.com/sst/)

Formation permanente ARS

69

Disques durs

Technologies

Une tte de lecture dun disque dur est un objet trs sophistique, trs fragile en cas de choc :

(source http://www.almaden.ibm.com/sst/)

Formation permanente ARS

70

Disques durs

Disques durs IDE

21.2 Disques durs IDE


Apparus avec les PC. Diffrences avec un disque SCSI : prix infrieur carte contrleur diffrente (la mcanique est donc identique)

Evolution ? plus grosse capacit vitesse daccs, de rotation

cela devrait proter aussi SCSI

Formation permanente ARS

71

Disques durs

Disques durs SCSI

21.3 Disques durs SCSI


(en anglais Small Computer System Interface) SCSI : pas uniquement des disques 1986 : SCSI 1 1990 : SCSI 2 ? : SCSI 3

Limitations de SCSI 2 : limitation 16 priphriques par bus SCSI longueur de cable limite lajout de priphrique diminue la longueur de cable autoris cest du parallel SCSI

Formation permanente ARS

72

Disques durs

Disques durs SCSI

Amliorations : SCSI 3 passage dun cable de cuivre du bre chanel dont les trames peuvent transiter sur du cable de cuivre ou sur de la bre optique nombre de priphriques illimit (limite 16 millions) dcomposition de la norme SCSI 3 en plusieurs couches (la norme SCSI 3 20 documents

sparation entre les couches physiques de SCSI 3 et les couches hautes


cest du serial SCSI

contre un seul pour SCSI 2)

Formation permanente ARS

73

Disques durs

Technologies NAS, SAN

21.4 Technologies NAS, SAN


NAS Network Attached Storage

Principe : une machine spcialise quipe de disques RAID et qui sert ces chiers via le rseau IP (NFS, CIFS en gnral). La marque la plus connue : Network Appliance, NAS utilise les protocoles NFS et SMB/CIFS.

http://www.netapp.com

SAN

Storage Array Network

Principe : chaque machine cliente de chiers est quipe dune carte adaptateur linterconnectant un rseau Fibre Channel compos dunits de stockage (RAID, TAPE, etc.) mises en commun SAN est un rseau qui utilise le protocole serial SCSI.

Cf le cours de Marc Cheminaud pour plus de dtails.

Formation permanente ARS

74

Le noyau Unix et les priphriques

Chapitre 22 : Le noyau Unix et les priphriques

Point cl dUnix : abstraction dun priphrique sous la forme de chier

tout se ramne des primitives daccs des chiers interface unie de programmation

Formation permanente ARS

75

Le noyau Unix et les priphriques

Type de chiers, test

22.1 Type de chiers, test

chiers rguliers (test -f toto) directories (test -d toto) chiers blocs (test -b toto) ou caractres (test -c toto) : ils font rfrence des
-rw-r--r-1 besancon software 940 Sep 21 14:23 cours.tex drwxr-sr-x 17 besancon software 1536 Sep 21 14:33 .

pipes nomms ou FIFO (test -p toto) sockets (test -S toto) liens symboliques (test -L toto)
prw-r--r-1 besancon software srwxrwxrwx 1 root bin 0 Sep lrwxrwxrwx 1 root wheel /usr/share/misc/termcap
Formation permanente ARS

priphriques crw-r----- 1 root brw-r----- 1 root

operator operator

13, 4,

0 Jun 10 13:27 /dev/rsd0a 0 Jun 10 13:27 /dev/sd0a

0 Sep 21 14:38 essai

4 17:21 /tmp/.X11-unix/X0

23 Jun 10 13:24 /etc/termcap@ -> \

76

Le noyau Unix et les priphriques

Rpertoire /dev

22.2 Rpertoire /dev

/dev est le lieu de dpt des chiers spciaux.

Traditionnellement, le script /dev/MAKEDEV cre les chiers spciaux ncssaires par dfaut au systme (boot

-r sur Solaris).

Les droits daccs aux chiers spciaux dans /dev sont trs importants. Une prcaution : conserver une trace crite dun "ls

-l" de /dev

Formation permanente ARS

77

Le noyau Unix et les priphriques

Rpertoire /dev

Quel est le contenu du rpertoire

/dev ?

Dans le cas de machines de type System-V (comme Solaris), Rpertoire Contenu

/dev contient de sous rpertoires :

/dev/rdsk /dev/dsk /dev/rmt /dev/pty /dev/ptym

disques en mode caractre disques en mode bloc bandes magntiques pseudo-terminaux esclaves pseudo-terminaux matres

Les machines BSD mettent tout en vrac.

Formation permanente ARS

78

Le noyau Unix et les priphriques

Mode bloc

22.3 Mode bloc


Reconnaissable lors dun ls

-l :

brw-r----- 1 root operator 4, 0 Jun 10 13:27 /dev/sd0a brw-r----- 1 root sys 32, 8 Jul 9 1999 /dev/dsk/c0t1d0s0
Ce mode concerne surtout les disques durs : la lecture dun octet de donnes se traduit par la lecture dun bloc complet conserv alors dans un peu de mmoire du noyau, le buffer cache. la lecture de donnes supplmentaires passe par la consultation du cache dabord une criture est asynchrone : les donnes sont crites dans le buffer cache les donnes crites sajoutent au buffer cache en cas de remplissage du cache, les donnes sont crites sur disque et le cache se vide

Finalit du mode bloc : minimaliser les entres / sorties Les transferts se font toujours par blocs de taille xe.

Formation permanente ARS

79

Le noyau Unix et les priphriques


User programs

Mode bloc

Libraries User level Kernel Level System Call Interface

Process File Subsystem Control Subsystem

Buffer Cache

Character Device Drivers

Block

Hardware Control Kernel level Hardware level Hardware

Formation permanente ARS

80

Le noyau Unix et les priphriques

Mode caractre

22.4 Mode caractre


Reconnaissable lors dun ls

-l :

crw-r----- 1 root operator 13, 0 Jun 10 13:27 /dev/rsd0a crw-r----- 1 root sys 32, 8 Jan 6 2000 /dev/rdsk/c0t1d0s0
Un priphrique en mode caractre accepte un transfert dune quantit quelconque doctets. Pas de transit par une zone cache intermdiaire.

accs rapide

Dautres oprations sont permises selon le priphrique en mode caractre : formatage rglage de paramtres de liaison srie autres oprations de bas niveau ... Les priphriques en mode block ont souvent aussi une interface en mode caractres.

Formation permanente ARS

81

Le noyau Unix et les priphriques


User programs

Mode caractre

Libraries User level Kernel Level System Call Interface

Process File Subsystem Control Subsystem

Buffer Cache

Character Device Drivers

Block

Hardware Control Kernel level Hardware level Hardware

Formation permanente ARS

82

Le noyau Unix et les priphriques

Device drivers

22.5 Device drivers


Lutilisation dune pice de hardware ncessite un pilote spcial (dit "device driver").

un device driver par priphrique de type diffrent. installation au niveau du noyau Unix du device driver (donc reconguration en cas dajout de
device) ; linstallation est spcique chaque Unix.

Formation permanente ARS

83

Le noyau Unix et les priphriques


User programs

Device drivers

Libraries User level Kernel Level System Call Interface

Process File Subsystem Control Subsystem

Buffer Cache

Character Device Drivers

Block

Hardware Control Kernel level Hardware level Hardware

Formation permanente ARS

84

Le noyau Unix et les priphriques

Minor number / major number

22.6 Minor number / major number


Lassociation entre le priphrique est le noyau est assure par un couple : (minor number, major number)

major number Il identie le device driver dans le noyau. minor number


II identie le priphrique pour un certain driver.

Formation permanente ARS

85

Le noyau Unix et les priphriques

Minor number / major number

Programme utilisateur

write() ioctl()

read()

Fichier spcial /dev/foo Mode du pripherique Major device number Minor device number

/dev/foo

10

20

Noyau

Block Device Switch (bdevsw)

Character Device Switch (cdevsw)

Formation permanente ARS

86

Le noyau Unix et les priphriques

Cration des chiers spciaux : mknod

22.7 Cration des chiers spciaux : mknod

La commande pour crer les chiers spciaux est mknod :

mknod nom [c|b] major number


Qui connait les minor et les major numbers ? Ils ne sinventent pas ! La rponse est dans le systme.

Actuellement on distingue 2 approches diffrentes pour les gnrer : Le systme connait les majors et les minors mais cest profondment cach dans le systme. Cest lapproche de Solaris. Sur Solaris, booter la machine en faisant boot

-r se charge de gnrer les devices quil faut.

Formation permanente ARS

87

Le noyau Unix et les priphriques

Cration des chiers spciaux : mknod

On a une liste exhaustive des minors et majors pour les drivers de base. Sur ces systmes, le programme

/dev/MAKEDEV suit cette liste et gnre convenable le priphrique quon lui

dsigne comme par exemple le disque SCSI 1. Cest lapproche de Linux.


# cd /dev # ls MAKEDEV # ./MAKEDEV std # ls MAKEDEV MAKEDEV.local console drum # ./MAKEDEV all MAKEDEV MAKEDEV.local apm bpf0 ...

MAKEDEV.local

fd io klog kmem perfmon psm0 ptyp0 ptyp1

lkm mem null pci rsd0s4 rsd1 rsd1.ctl rsd1a

random stderr stdin stdout rwd3g rwd3h rwd3s1 rwd3s2

tty urandom zero

ttypb ttypc ttypd ttype

Formation permanente ARS

88

Systmes de chiers

Chapitre 23 : Systmes de chiers

23.1 Filesystem
Filesystem structure performante de gestion des chiers

Exemple : Fast File System dit FFS, EXT2 ou EXT3 de LINUX, etc.

Brivement, en voici quelques caractristiques : 1. Notion dinode 2. Notion dcriture gographiquement proche 3. Optimisation de la gestion de la liste des blocs libres 4. Stratgie dallocation des blocs

Formation permanente ARS

89

Systmes de chiers

Structure interne associ un chier : inode

23.2 Structure interne associ un chier : inode


inode Index Node

Un chier est identi et dcrit sur un disque dur par son numro dinode (index node) et non pas par son nom. La structure inode (cf <sys/ufs/dinode.h>) dcrit un chier de la faon suivante : type de chier droits daccs nombre de liens ; quand il passe 0 et que le chier nest plus uilis, le chier est dtruit et la place est rcupre. UID, GID taille dates de dernire modication, consultation etc. localisation des blocs du chier sur le disque

Formation permanente ARS

90

Systmes de chiers

Structure interne associ un chier : inode

La structure inode (128 octets) ne peut pas contenir la liste complte de tous les blocs utiliss. On utilise donc le principe de liste indirecte :
I-Node.
Other Info

Block Addresses

direct

single indirect double indirect triple indirect

Legend
Data block, contains actual file data Indirect blocks, contain about 256 block pointers

Formation permanente ARS

91

Systmes de chiers

Structure interne associ un chier : inode

Un bloc a pour taille 4 ko (4096 octets). Une adresse de bloc occupe 4 octets.

Linode contient 13 numros de blocs : les 12 premiers sont les numros des 12 premiers blocs de donnes du chier ; le suivant indique le numro dun bloc indirect : il contient les numros des blocs de donnes partir du onzime. Il adresse donc 1024 blocs. le douzime numro est le numro dun bloc. Celui-ci contient 1024 numros de blocs indirects, cest--dire que chacun de ces 1024 blocs adressent un bloc de donnes ; le treizime numro suit cette logique avec une triple indirection.

Ce schma donne une taille limite de chiers de :

octets

octets

Le troisime niveau dindirection est quasi inutilis car le remplissage des blocs indirects et indirects de niveau 1 et 2 assure dj une taille de chiers > 4 Go.
Formation permanente ARS 92

Systmes de chiers

Partitionnement de disques durs, format, disklabel, fdisk

23.3 Partitionnement de disques durs, format, disklabel, fdisk


Pourquoi partitionner un disque dur en lesystems ? pour cloisonner les utilisateurs cest--dire les problmes pour faciliter les sauvegardes pour limiter lexpansion de certains utilisateurs au dtriment des autres pour faciliter lutilisation de NFS (Network File System)

Problmes courants avec les partitions : Une partition est pleine alors quune autre, surdimensionne est quasi vide. Les diffrents constructeurs divergent sur les implmentations des partitions.

Une partition peut contenir : un lesystem une zone de swap, sans structure de lesystem plaque dessus rien ; la partition est rserve pour un usage ultrieur

Formation permanente ARS

93

Systmes de chiers

Partitionnement de disques durs, format, disklabel, fdisk

Les informations concernant les partitions sont stockes dans une zone du disque dite disk label (sur SunOS dans le premier secteur de la premire partition).

Le disk label contient : caractristiques physiques du disque paramtres de partitionnement secteurs dfectueux Les commandes pour dposer un disk label sont propres chaque constructeur (disklabel,

format . . .) :
Sur Solaris : format Sur Linux : fdisk ou disklabel

-r

Formation permanente ARS

94

Systmes de chiers

Liste des partitions, prtvtoc, disklabel, fdisk

23.4 Liste des partitions, prtvtoc, disklabel, fdisk

Sur Solaris : prtvtoc


# * * * * * * * * * * * * * * * * prtvtoc /dev/rdsk/c1t1d0s2 /dev/rdsk/c1t1d0s2 partition map Dimensions: 512 bytes/sector 417 sectors/track 6 tracks/cylinder 2502 sectors/cylinder 14342 cylinders 14340 accessible cylinders Flags: 1: unmountable 10: read-only First Sector Last Sector Count Sector 0 35878680 35878679 0 35878680 35878679

Partition 0 2

Tag 8 5

Flags 00 01

Mount Directory /mnt/ufs/1

Formation permanente ARS

95

Sur Linux : fdisk -l ou disklabel -r


# /sbin/fdisk -l /dev/hdc

Systmes de chiers

Liste des partitions, prtvtoc, disklabel, fdisk

Disk /dev/hdc: 16 heads, 63 sectors, 148945 cylinders Units = cylinders of 1008 * 512 bytes Device Boot /dev/hdc1 /dev/hdc2 /dev/hdc3 Start 1 4163 75001 End 4162 75000 148945 Blocks 2097616+ 35702352 37268280 Id 82 83 83 System Linux swap Linux Linux

Formation permanente ARS

96

Systmes de chiers

Nommage des partitions System-V

23.5 Nommage des partitions System-V


Les noms typiques sont de la forme /dev/dsk/c

, o :

est le numro du contrleur ; est le numro du disque ; est le numro de la section sur le disque.

% df -F ufs -k Filesystem /dev/dsk/c201d6s0

1024-blocks Used Available Capacity Mounted on 745942 636366 34981 95% /

Variante Solaris : /dev/dsk/c


% df -F ufs -k Filesystem /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s6 /dev/dsk/c0t1d0s0 /dev/dsk/c0t1d0s1 /dev/dsk/c0t0d0s5

(contrleur, target, disk, slice) :


Mounted on / /usr /net/serveur/home /usr/local /opt

kbytes used avail capacity 246167 60541 161010 28% 962582 419332 485496 47% 1015695 822607 132147 87% 7717573 3463222 4177176 46% 183687 13017 152302 8%

Formation permanente ARS

97

Systmes de chiers

Nommage des partitions BSD

23.6 Nommage des partitions BSD


Les noms typiques sont de la forme /dev/

, o :

est un code mnmonique du driver ; est le numro du disque ; est une lettre entre a et h identiant la partition ;

% df Filesystem /dev/sd0a

1K-blocks 95359

Used 42623

Avail Capacity 45108 49%

Mounted on /

Les systmes BSD admettent en gnral au plus 8 partitions par disque physique. Leur gographie est conventionnellement quelque chose du genre :

b c

Formation permanente ARS

98

Systmes de chiers

Formatage (1) : mkfs

23.7 Formatage (1) : mkfs


(en anglais make le system) Commande : mkfs

[options] fichier-spcial

Par exemple sur Solaris :


# mkfs -F ufs /dev/rdiskette size not specified ufs usage: mkfs [-F FSType] [-V] [-m] [-o options] special size(sectors) \ [nsect ntrack bsize fragsize cpg free rps nbpi opt apc gap nrpos maxcontig] -m : dump fs cmd line used to make this partition -V :print this command line and return -o :ufs options: :nsect=32,ntrack=16,bsize=8192,fragsize=1024 -o :ufs options: :cgsize=0,free=0,rps=60,nbpi=2048,opt=t -o :ufs options: :apc=0,gap=0,nrpos=0,maxcontig=0 NOTE that all -o suboptions: must be separated only by commas so as to be parsed as a single argument

la commande ncessite des paramtres complexes


Formation permanente ARS

99

Systmes de chiers

Formatage (2) : newfs

23.8 Formatage (2) : newfs


(en anglais new le system) La commande

newfs offre des options simples et appelle en fait derrire mkfs avec ce quil faut. [options] fichier-spcial

Syntaxe la plus rpandue : newfs

Options intressantes : option -m : prcise la taille de minfree. option -i : prcise le nombre doctets de donnes pour un inode (2048 octets pour un inode par dfaut). option -v : afche la commande

mkfs qui serait lance

Formation permanente ARS

100

Systmes de chiers

Formatage (2) : newfs

Par exemple sur Solaris :

# newfs -v /dev/rdiskette newfs: construct a new file system /dev/rdiskette: (y/n)? y mkfs -F ufs /dev/rdiskette 2880 18 2 8192 1024 16 10 5 2048 t 0 -1 8 16 /dev/rdiskette: 2880 sectors in 80 cylinders of 2 tracks, 18 sectors 1.4MB in 5 cyl groups (16 c/g, 0.28MB/g, 128 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 640, 1184, 1792, 2336,

Formation permanente ARS

101

Systmes de chiers

Inodes 0, 1, 2 et 3, rpertoire lost+found

23.9 Inodes 0, 1, 2 et 3, rpertoire lost+found


Points importants dans la logique du fonctionnement du lesystem : 1. Certains directories ont des numros dinodes bien prcis :
% /bin/ls -lai / 2 drwxr-sr-x 22 root 2 drwxr-sr-x 22 root 3 drwxr-xr-x 2 root 512 Sep 11 15:11 . 512 Sep 11 15:11 .. 8192 Aug 8 17:38 lost+found

Le numro dinode 0 sert marquer les inodes inutiliss. Le numro dinode 1 est rserv. 2. Le directory lost+found est cre automatiquement par la commande newfs. La taille du directory (vide) est sufsamment grande pour y stocker des numros dinodes deconnects dans des conditions prcaires :
% ls /lost+found -rw------1 root sys 0 Mar 1 1996 #155782

Il ne faut pas dtruire ce directory ni essayer de le reconstruire manuellement par mkdir. Selon le constructeur, il existe ou pas une commande spciale pour reconstruire ce directory.

Formation permanente ARS

102

Systmes de chiers

Montage de lesystems : mount

23.10 Montage de lesystems : mount


La greffe dune partition dun disque sur larborescence sappelle le montage dun lesystem. Syntaxe : mount Exemples :
# mount /dev/sd0g /mnt # mount -t cdfs -o rrip,ro /dev/rz4c /cdrom

[options] fichier-spcial point-de-montage

Attention : 1. Le point de montage doit exister avant de lancer la commande. 2. Le contenu du point de montage devient invisible aprs le montage. 3. On ne peut monter un lesystem que si celui-ci a une structure interne marque comme cohrente (cf la suite sur fsck) :
# mount /users/lpmc WARNING: R/W mount of /users/lpmc denied. Filesystem is not clean - run fsck.
Formation permanente ARS 103

Systmes de chiers

Dmontage de lesystems : umount, fuser, lsof

23.11 Dmontage de lesystems : umount, fuser, lsof


Syntaxe : umount

point-de-montage

Attention : on ne peut pas dmonter un disque 1. si une commande sexcute dans la partition 2. si des chiers sont ouverts dans la partition 3. si lon a un rpertoire courant dans un rpertoire de la partition (ce qui se ramne avoir un le descripteur ouvert sur la partition dans tous les cas)

Utiliser les commandes fuser ( peu prs standard) ou lsof (cf


processus empchant le dmontage dun disque.

ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/) pour identier les

Formation permanente ARS

104

Systmes de chiers

Dmontage de lesystems : umount, fuser, lsof

Par exemple :

# cd /mnt # fuser /mnt /mnt: 17853c # echo $$ 17853


Autre exemple :
# cd /mnt # umount /mnt umount: /mnt: # lsof /mnt COMMAND PID bash 21372 lsof 21376 lsof 21377 # echo $$ 21372

10237c

Device busy USER root root root FD cwd cwd cwd TYPE DEVICE SIZE/OFF NODE NAME VDIR 36,2 512 2 /mnt VDIR 36,2 512 2 /mnt VDIR 36,2 512 2 /mnt

Formation permanente ARS

105

Systmes de chiers

Liste des partitions montes : df, mount

23.12 Liste des partitions montes : df, mount


(en anglais display free) La commande df permet de voir la liste des montages :
% df -k Filesystem kbytes used avail capacity /dev/dsk/c0t0d0s0 123231 39164 71744 36% /dev/dsk/c0t0d0s3 1523574 699814 762818 48% /dev/dsk/c0t0d0s4 492422 27835 415345 7% /dev/dsk/c0t0d0s5 3095966 1371773 1662274 46% /dev/dsk/c0t0d0s6 2052750 1976120 15048 100% lucifer.prism.uvsq.fr:/USERS/prism/staff 4375366 2949034 1382579 69% torquenada.prism.uvsq.fr:/OPT/tmp 650847 343011 242756 59%

Mounted on / /usr /var /opt /infosystems /users/prism/staff /qic

Formation permanente ARS

106

Systmes de chiers

Liste des partitions montes : df, mount

On peut limiter lafchage aux disques locaux (ie prsents sur la machine mme). La syntaxe dpend du nom du type du systme de chiers. Par exemple sur Solaris :
% df -k -F ufs Filesystem /dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s3 /dev/dsk/c0t0d0s4 /dev/dsk/c0t0d0s5 /dev/dsk/c0t0d0s6

kbytes used avail capacity 123231 39164 71744 36% 1523574 699814 762818 48% 492422 27835 415345 7% 3095966 1371773 1662274 46% 2052750 1976120 15048 100%

Mounted on / /usr /var /opt /infosystems

On peut limiter lafchage aux disques distants :


% df -k -F nfs Filesystem kbytes used avail capacity lucifer.prism.uvsq.fr:/USERS/prism/staff 4375366 2949034 1382579 69% torquenada.prism.uvsq.fr:/OPT/tmp 650847 343011 242756 59%

Mounted on /users/prism/staff /qic

Formation permanente ARS

107

Systmes de chiers

Liste des partitions montes : df, mount

La commande

mount permet aussi davoir la liste des lesystems monts :

% mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/logging/onerror=panic/dev=2200000 \ on Tue Oct 10 17:49:13 2000 /usr on /dev/dsk/c0t0d0s3 read/write/setuid/intr/largefiles/logging/onerror=panic/dev=2200003 \ on Tue Oct 10 17:49:13 2000 /proc on /proc read/write/setuid/dev=2d80000 on Tue Oct 10 17:49:11 2000 /dev/fd on fd read/write/setuid/dev=2e40000 on Tue Oct 10 17:49:14 2000 /etc/mnttab on mnttab read/write/setuid/dev=2f40000 on Tue Oct 10 17:49:16 2000 /var on /dev/dsk/c0t0d0s4 read/write/setuid/intr/largefiles/logging/onerror=panic/dev=2200004 \ on Tue Oct 10 17:49:16 2000 /var/run on swap read/write/setuid/dev=1 on Tue Oct 10 17:49:16 2000 /tmp on swap read/write/setuid/dev=2 on Tue Oct 10 17:49:18 2000 /opt on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/logging/onerror=panic/dev=2200005 \ on Tue Oct 10 17:49:19 2000 /infosystems on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/logging/onerror=panic/dev=2200006 \ on Tue Oct 10 17:49:19 2000 /sae on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/logging/onerror=panic/dev=2200007 \ on Tue Oct 10 17:49:19 2000 /users/prism/staff on lucifer.prism.uvsq.fr:/USERS/prism/staff remote/read/write/setuid/dev=2fc0001 \ on Tue Oct 10 17:49:24 2000 /qic on torquenada.prism.uvsq.fr:/OPT/tmp remote/read/write/setuid/dev=2fc0002 \ on Wed Oct 11 10:17:21 2000

Formation permanente ARS

108

Systmes de chiers

Liste des partitions montes : df, mount

Attention : df ou mount peuvent bloquer sur un montage dfaillant.

Lancer "df

&" ou "mount &" en cas de blocage possible.

Formation permanente ARS

109

Systmes de chiers

Montage automatique au boot : /etc/fstab, /etc/vfstab

23.13 Montage automatique au boot : /etc/fstab, /etc/vfstab


(en anglais le system table) Au dmarrage, les disques sont monts automatiquement par la commande "mount La commande "mount mentionns dedans. Par exemple sur Linux, le chier /etc/fstab contient quelque chose comme :
/dev/hda1 /dev/cdrom /dev/fd0 none none /dev/hda5 / /mnt/cdrom /mnt/floppy /proc /dev/pts swap ext2 iso9660 auto proc devpts swap defaults noauto,owner,ro noauto,owner defaults gid=5,mode=620 defaults 1 0 0 0 0 0 1 0 0 0 0 0

-a".

-a" utilise le contenu du chier /etc/fstab et monte tous les volumes

Sur Solaris, le chier quivalent /etc/fstab sappelle quivalente.

/etc/vfstab et suit une syntaxe

Formation permanente ARS

110

Systmes de chiers

Montage automatique au boot : /etc/fstab, /etc/vfstab

Le format de /etc/fstab (ou quivalent) :

champ 1 : nom du chier spcial champ 2 : point de montage champ 3 : type de esystem champ 4 : options de montage champ 5 : utilis par la commande "dump" champ 6 : numro dordre du disque lors dune vrication de cohrence des disques par la
commande fsck Une fois renseign le chier /etc/fstab, on peut : monter la totalit des partitions : mount -a monter une certaine partition : mount partition comme par exemple : # mount /var

Formation permanente ARS

111

Systmes de chiers

Vrication de la cohrence des disques : fsck, update, sync

23.14 Vrication de la cohrence des disques : fsck, update, sync


Quelques constatations : 1. Les lesystems sont constamment modis. 2. Il peut arriver que des informations se perdent en cas de dysfonctionnement du matriel. 3. Il y a le cache buffer. Le buffer cache conserve des donnes dont on retarde lcriture sur disques (exception faite pour les rpertoires, les superblocks, etc.). La commande sync provoque lcriture sur disque du contenu du buffer cache. Cette tche est excute par le dmon update (ou syncher) priodiquement, toutes les 30 secondes en gnral. Lors de lecriture sur disque du buffer cache, le lesystem est marqu FSCLEAN.

Formation permanente ARS

112

Systmes de chiers

Vrication de la cohrence des disques : fsck, update, sync


User programs

Libraries User level Kernel Level System Call Interface

Process File Subsystem Control Subsystem

Buffer Cache

Character Device Drivers

Block

Hardware Control Kernel level Hardware level Hardware

Formation permanente ARS

113

Systmes de chiers

Vrication de la cohrence des disques : fsck, update, sync

La perte du contenu du buffer cache en cas de dysfonctionnement peut conduire effectuer des rparations par la commande fsck (File System Check Consistency) : Plusieurs vrications sont effectues par fsck : le super-block contient le bon nombre de blocs libres ; le super-block contient le bon nombre dinodes libres ; le super-block contient la bonne taille de la partition ; un bloc de donnes appartient un et un seul chier, ou la liste des blocs libres ; un inode, sil est rfrenc

fois dans des rpertoires, a bien liens physiques ;

un inode est soit utilis, soit dans la liste des inodes libres ; la taille du chier correspond au nombre de blocs allous ; tout rpertoire contient une entre pour . et .. ; une entre dans un rpertoire doit rfrencer un inode non libre. A noter que lors du boot dune machine, si un lesystem est marqu FSCLEAN, fsck ne vrie pas ce lesystem. On se trouve dans ces conditions si la machine a t arrte ou redmarre en utilisant des commandes comme fastboot, fasthalt etc.
Formation permanente ARS 114

Systmes de chiers

Vrication de la cohrence des disques : fsck, update, sync

Exemple quand tout se passe bien :


# fsck /dev/rsd2g ** /dev/rsd2g ** Last Mounted on ** Phase 1 - Check ** Phase 2 - Check ** Phase 3 - Check ** Phase 4 - Check ** Phase 5 - Check CLEAN FLAG NOT SET FIX? [yn] y

/users/lpmc Blocks and Sizes Pathnames Connectivity Reference Counts Cyl groups IN SUPERBLOCK

23423 files, 1174684 used, 2946897 free (6641 frags, 367532 blocks, 0.2% fragmentation) ***** FILE SYSTEM WAS MODIFIED *****

Formation permanente ARS

115

Systmes de chiers

Vrication de la cohrence des disques : fsck, update, sync

Exemple en cas de problme :


Automatic reboot in progress... /dev/rsd0a: clean, 234610 free (9626 frags, 28123 blocks, 2.6% fragmentation) /dev/rsd10c: clean, 842274 free (386 frags, 105236 blocks, 0.0% fragmentation) /dev/rsd12c: clean, 470238 free (822 frags, 58677 blocks, 0.1% fragmentation) /dev/rsd11c: clean, 155358 free (1406 frags, 19244 blocks, 0.1% fragmentation) /dev/rccd0c: clean, 3642368 free (15392 frags, 453372 blocks, 0.2% fragmentation) cannot alloc 8340482 bytes for lncntp /dev/rccd1c: CANT CHECK FILE SYSTEM. /dev/rccd1c: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. /dev/rccd2c: clean, 1759345 free (10417 frags, 218616 blocks, 0.1% fragmentation) cannot alloc 10629122 bytes for lncntp /dev/rsd5c: CANT CHECK FILE SYSTEM. /dev/rsd5c: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. THE FOLLOWING FILE SYSTEMS HAD AN UNEXPECTED INCONSISTENCY: /dev/rccd1c (/people), /dev/rsd5c (/hold) Automatic file system check failed... help! Enter root password, or ^D to go multi-user

Formation permanente ARS

116

Systmes de chiers

Vrication de la cohrence des disques : fsck, update, sync

Syntaxe :

fsck [options] [fichier-spcial]


Options intressantes : option -y : Rpond "yes" toutes les questions que posent fsck option -n : Rpond "no" toutes les questions que posent fsck option -p : Rpond "yes" toutes les questions anodines que posent fsck. Cest ce qui est utilis au moment du boot.

Quelques rgles : Ne jamais lancer fsck sur une partition active, monte car cela peut conduire un tat instable du lesystem. Si possible, lancer fsck en tant en single user. En cas de fsck sur /, redmarrer juste aprs sans sauver le buffer cache.

Formation permanente ARS

117

Systmes de chiers

Quotas, quotaon, quota, edquota, etc.

23.15 Quotas, quotaon, quota, edquota, etc.


Le mcanisme des quotas impose lutilisateur des limites sur : 1. le nombre de blocs disque utilisables par lesystem 2. le nombre dinodes utilisables par lesystem

Une limite est en fait compose dun couple de valeurs : limite soft : Aucune alarme nest active tant quon reste en dessous de cette limite. Si lon dpasse ce seuil, il y a une alarme qui est active. Des messages derreur apparaissent. Lutilisateur a 7 jours pour revenir en dessous de ce seuil. Au del de 7 jours, toute consommation de ressources supplmentaires est bloque. limite hard : Cest un seuil suprieur indpassable. Lutilisateur sil dpasse la limite soft peut continuer de consommer des ressources concurrence de la limite hard.

Formation permanente ARS

118

Systmes de chiers

Quotas, quotaon, quota, edquota, etc.

Par exemple :
% quota -v besancon Disk quotas for besancon (uid 4332): Filesystem usage quota limit timeleft /adm 98696 80000 100000 7.0 days

files 4959

quota 4000

limit 5000

timeleft 7.0 days

Lutilisateur limites soft.

besancon dpasse son quota soft et a 7 sept jours pour revenir en dessous des 2

Formation permanente ARS

119

Systmes de chiers

Quotas, quotaon, quota, edquota, etc.

Les commandes de gestion des quotas sont : Commande Description Afche lutilisation disque de lutilisateur et son quota Recalcule les quotas utiliss Active les quotas Dsactive les quotas Rapport de situation des quotas Modication du quota dun utilisateur

quota -v utilisateur quotacheck quotaon quotaoff repquota edquota

# repquota -v -a /dev/sd3g (/adm): User besancon Block limits used soft hard timeleft 98696 80000 100000 7.0 days used 4959 soft 4000 File limits hard timeleft 5000 7.0 days

++

Formation permanente ARS

120

Systmes de chiers

Quotas, quotaon, quota, edquota, etc.

Lactivation du systme de quotas ncessite les points suivants : 1. Le noyau doit supporter le mcanisme des quotas. En effet laspect comptabilit incombe au noyau. 2. Le lesystem doit supporter les quotas. 3. Les quotas doivent tre activs lors du montage de la partition : (a) Prciser que le lesystem est mont avec les quotas activs au niveau de /etc/fstab ou quivalent :

/dev/sd3g
(b) Lancer

/adm

4.2

rw,quota

1 4

quotaon. De prfrence pendant le boot de la station. Une opration quotacheck doit tre lance au pralable an davoir un tat cohrent des quotas. Cela
peut ralentir le boot.

4. Les quotas doivent tre entrs pour chaque utilisateur. Cest une opration automatisable au moyen dun squelette type et de la commande

edquota.

Formation permanente ARS

121

Systmes de chiers

Stratgie dallocation des blocs, MINFREE, tunefs

23.16 Stratgie dallocation des blocs, MINFREE, tunefs


La stratgie dallocation des blocs au sein dun lesystem ne fonctionne que si le disque contient un espace libre raisonnable. Cet espace est appel minfree. La rserve est de 10% dordinaire :
% df -t ufs /tmp Filesystem 1K-blocks /dev/sd0s1f 127151 Used 22843 Avail Capacity 94136 20% Mounted on /tmp

Ceci explique que lon puisse remplir une partition plus de 100% :
# df -t ufs /mnt Filesystem 1K-blocks /dev/sd0s1d 1702685 Used 1638403 Avail Capacity -71932 105% Mounted on /mnt

La commande tunefs permet de rgler ce pourcentage :

tunefs -m minfree raw-filesystem


(dmonter le lesystem avant le tunefs puis le remonter aprs)
Formation permanente ARS 122

Technologies volues pour lesystems

Chapitre 24 : Technologies volues pour lesystems

24.1 Snapshots
Snapshot clich instantan du lesystem (terme de photographie)

Le snapshot montre un lesystem g alors que le lesystem continue de se modier. Avantages : snapshot rapide construire backup dune image stable dun lesystem rcupration facile et simple dun chier Disponible sous Solaris ( partir de la version 8, commande un reboot. Disponible sur les machines spcialises en stockage de la marque Network Appliance ;

fssnap) mais ne subsiste pas aprs

http://www.netapp.com
Formation permanente ARS 123

Technologies volues pour lesystems

Snapshots

Principe : on construit le snapshot en notant les blocs disques utiliss.

FILESYSTEM ACTIF fichier DONNEES.DAT

SNAPSHOT fichier DONNEES.DAT

Formation permanente ARS

124

Technologies volues pour lesystems

Snapshots

Le lesystem peut continuer voluer. Un chier modie ainsi ses blocs.

FILESYSTEM ACTIF fichier DONNEES.DAT

SNAPSHOT fichier DONNEES.DAT

Modification du bloc C du fichier

C2

Formation permanente ARS

125

Technologies volues pour lesystems

Snapshots

Le lesystem est conu pour travailler conjointement avec les snapshots. Il va dupliquer le bloc que lon veut modier car le lesystem sait que ce bloc est associ un snapshot. Il modier la copie du bloc. Le snapshot pointe toujours sur les mmes blocs.

FILESYSTEM ACTIF fichier DONNEES.DAT

SNAPSHOT fichier DONNEES.DAT

C2

Ncessit de grer le nombre et la dure de vie des snapshots !


Formation permanente ARS 126

Technologies volues pour lesystems

Logical Volume Managers, LVM

24.2 Logical Volume Managers, LVM


Par exemple sur les Unix IBM AIX, SUN Solaris, COMPAQ Tru64 Unix

LVM

gestion dynamique des lesystems :

cration dynamique de lesystems supporte davantage que les 8 partitions classiques dun seul disque dur redimensionnement dynamique de lesystems actifs suppression de lesystems ajout de disques online

Un LVM est un avantage. Un LVM est dlicat manipuler. Un LVM est spcique chaque Unix.

Formation permanente ARS

127

Technologies volues pour lesystems

Filesystem journalis

24.3 Filesystem journalis


La commande

fsck peut se rvler non pratique :

lorsque lon a beaucoup de disques lorsque les disques sont gros

solution du lesystem journalis :


garantit la abilit des donnes grande rapidit de recouvrement lors dun crash machine grce la lecture complte des oprations stockes dans un journal

Le journal correspond une zone disque rserve dans laquelle sont ranges squentiellement toutes les mises jour de donnes, et ce, avant leur mise jour effective dans le systme de chiers.

Lors dun crash machine, la relecture du journal permet de reconstituer la totalit des systmes de chiers en quelques secondes. Il ny a plus besoin de recourir fsck.
Formation permanente ARS 128

Technologies volues pour lesystems

Filesystem journalis

SECTION DE DONNEES
root usr tmp people

METADONNEES (structures de controle)

JOURNAL
... En 1 En En + 1 ...

Point de sauvegarde Point de depart pour reexecuter les actions effectuees avant le crash

Formation permanente ARS

129

Technologies volues pour lesystems

RAID

24.4 RAID
RAID Redundancy Array of Inexpensive Disks

Papier historique : A Case tor Redundant Arrays of Inexpensive Disks (RAID) par Patterson, Gibson, et Katz de lUniversit de Berkeley Californie.
http://sunsite.berkeley.edu:80/Dienst/Repository/2.0/Body/ncstrl.ucb/CSD-87-391/pdf

Cf le cours de Marc Cheminaud.

Formation permanente ARS

130

Technologies volues pour lesystems

RAID

Principe la louche : on nutilise plus de disques durs indpendants mais un ensemble de disques durs (en gnral rackable) grs par des contrleurs disques spcialiss.

Lensemble est cens encaisser la panne dau moins un disque dur. En cas de panne dun disque dur, le systme continue de travailler. Un disque en remplacement sera rempli par des donnes reconstruites partir des donnes sur le reste des disques de lensemble.

Formation permanente ARS

131

Technologies volues pour lesystems

RAID

Principe du RAID 0 : striping


minimum de 2 disques

Avantages :

les donnes sont dcoupes en blocs (A, B, C, etc.) crits sur des disques distincts

I/O en parallle simple raliser

Inconvnients :

maximum de performance

non tolrant aux pannes (un disque en panne

tout est perdu)


132

Formation permanente ARS

Technologies volues pour lesystems

RAID

Principe du RAID 1 : mirroring et duplexing


minimum de 2 disques

Avantages :

les donnes sont dcoupes en blocs (A, B, C, etc.) crits sur des disques jumeaux

lecture sur nimporte lequel des disques jumeaux

lecture deux fois plus performante

Inconvnients :

simple raliser

pas trs efcace (100% de disques en plus) charge le CPU en gnral (car ralisation en logiciel et pas en hardware)

Formation permanente ARS

133

Technologies volues pour lesystems

RAID

Principe du RAID 2 : code correcteur derreur ECC


la donne est loctet on dcoupe les donnes et on en calcule le code ECC que lon crit sur des disques ddis une lecture est vrie par le code ECC associ la donne ; on corrige ainsi une panne de

Avantages : grand taux de transfert de donnes Inconvnients :


inefcace cher ; peu doffres commerciales
Formation permanente ARS 134

disque

Technologies volues pour lesystems

RAID

Principe du RAID 3 (version simplie du RAID 2 avec un seul disque de parit) :


minimum de 3 disques on dcoupe les octets en stripes crits sur les disques on calcule la parit du stripe que lon crit sur le disque ddi de parit

Avantages :

on vrie la parit du stripe lors des lectures taux lev de lectures ou dcritures

Inconvnients :

panne disque relativement insensible contrleur disque complexe


Formation permanente ARS 135

Technologies volues pour lesystems

RAID

Principe du RAID 4 :
minimum de 3 disques on travaille par bloc doctets que lon disperse sur les disques durs

Avantages : les disques durs peuvent agir indpendamment Inconvnients :


reconstruction dun disque complexe peu doffres commerciales
Formation permanente ARS

on calcule la parit de ces blocs que lon crit sur le disque ddi de parit

pour crire un bloc, on doit lire le bloc et sa parit

globalement plus lent


136

Technologies volues pour lesystems

RAID

Principe du RAID 5 :
minimum de 3 disques chaque bloc doctets est crit sur un disque

Avantages :

la parit est disperse sur tous les disques vitant ainsi un goulet dtranglement du RAID 4. Fort taux de transfert en lecture, taux moyen en criture

Inconvnients :

Solution populaire Contrleur complexe Reconstruction dlicate dun disque


Formation permanente ARS 137

Technologies volues pour lesystems


DISK 1 00010001 (0x13) 00011100 (0x1C) 01010111 (0x57) 00010001 (0x13) 00110101 (0x35) DISK 2 01001111 (0x4F) 01101000 (0x68) 00000001 (0x01)

RAID

DISQUE DEFAILLANT

00000001 (0x01) 10001000 (0x88) 11001101 (0xCD)

DISK 3 00011100 (0x1C) 00110101 (0x35) 00000000 (0x00) 10111010 (0xBA) 00000000 (0x00) 01100011 (0x63) 10111100 (0xBC) 10001000 (0x88)

DISK 2

00000001 (0x01) 10001000 (0x88) 11001101 (0xCD)

DISQUE RECONSTRUIT

DISK 4

01001111 (0x4F) 01100011 (0x63) 00100000 (0x20) 01010111 (0x57) 10111010 (0xBA) 00100000 (0x20) 01001011 (0x4B) PARITY 11001101 (0xCD) 01101000 (0x68) 10111100 (0xBC) 01001011 (0x4B)

Formation permanente ARS

138

Mcanismes de sauvegarde

Chapitre 25 : Mcanismes de sauvegarde

Storm Damage (11.7%) Power Outage (27.7%)

Flood (9.6%)

Hardware Error (7.7%)

Sabotage (0.8%) Water Pipe (1.0%) HVAC Outage (1.4%) Other (1.5%) Human Error (2.0%) Network Outage (2.1%) Earthquake (4.9%) Power Surge (5.1%) Software Error (5.4%)

Bombing (7.2%) Hurricane (6.3%) Fire (5.6%)

There are two types of computer users in the world. . . those that have lost data, and those that are going to.
Formation permanente ARS 139

Mcanismes de sauvegarde

Quand un chier est dtruit, il ny aucun moyen de le rcuprer sous Unix.

Seule prvention : faire des sauvegardes

les sauvegardes sont donc indispensables.

Unix offre une vue unie des chiers ou des priphriques. On peut donc sauvegarder : sur nimporte quel priphrique en mode caractre dans un chier sur un autre disque sur une autre machine

Formation permanente ARS

140

Mcanismes de sauvegarde

Technologies de lecteur de bandes

25.1 Technologies de lecteur de bandes


Il y a plusieurs technologies de lecteur de bandes magntiques : technologie de la bande ronde : obsolte technologie QIC : QIC 60 (obsolte), QIC 150 (obsolte) technologie Exabyte (bande 8mm) : obsolte technologie DDS (bande 4mm) : DDS1 (obsolte), DDS2 (obsolte), DDS3, DDS4 (plus de nouveaux dveloppements) technologie DLT : en cours dobsolescence technologie Super DLT (alias SDLT) (Quantum, IBM, HP, Seagate) : en vogue technologie AIT (Sony) : essaye de percer technologie Super AIT (Sony en 2003) : 500 Go/bande, 30 Mo/s technologie LTO : en vogue ; 100 Go/bande, 15 Mo/s

Formation permanente ARS

141

Mcanismes de sauvegarde

Technologies de lecteur de bandes

DAT (34.0%)

DLT + Super DLT (35.4%) Exabyte 8 mm (8.0%)

LTO (15.4%) Travan et Tandberg (7.2%)

Exprience personnelle : un lecteur de bande DDS meurt en 3 ans (vri par 5 collgues) pas de soucis avec les lecteurs DLT les cartouches SDLT, LTO sont chres

Formation permanente ARS

142

Mcanismes de sauvegarde

Technologies de lecteur de bandes

Le lecteur peut tre : isol (interne ou externe) mont dans une library un caroussel ensemble lecteur + robot de manipulation de cartouches stockes dans

Formation permanente ARS

143

Mcanismes de sauvegarde

Utilitaires

dump, restore

25.2 Utilitaires dump, restore

La particularit de dump est dassurer la sauvegarde dun disque en consultant la structure interne mme du lesystem via le chier spcial en mode caractre de la partition.

Syntaxe conseille :

dump 0f archive partition

(sur Solaris, utiliser /sbin/ufsdump)

Formation permanente ARS

144

Mcanismes de sauvegarde

Utilitaires

dump, restore

Points forts de dump :

Possibilit de sauvegardes incrmentales. Un niveau est associ la sauvegarde. Le niveau 0 correspond une sauvegarde complte. Le niveau 1 correspond la sauvegarde des seuls chiers modis depuis le niveau 0. etc.

Sauvegarde des chiers spciaux en tant que chiers spciaux.

Sauvegarde des chiers trous (sauvegarde des seuls blocs utiliss)

Formation permanente ARS

145

Mcanismes de sauvegarde

Utilitaires

dump, restore

Un dump se compose de 4 tapes :


[root@localhost d]# dump 0f /tmp/archive /etc DUMP: Date of this level 0 dump: Sat Jan 27 16:48:52 2001 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping /dev/hda2 (/ (dir etc)) to /tmp/archive DUMP: Label: none DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 3514 tape blocks on 0.09 tape(s). DUMP: Volume 1 started at: Sat Jan 27 16:48:52 2001 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: Closing /tmp/archive DUMP: Volume 1 completed at: Sat Jan 27 16:48:54 2001 DUMP: Volume 1 took 0:00:02 DUMP: Volume 1 transfer rate: 2535 KB/s DUMP: DUMP: 5071 tape blocks on 1 volumes(s) DUMP: finished in less than a second DUMP: DUMP: Date of this level 0 dump: Sat Jan 27 16:48:52 2001 DUMP: DUMP: Date this dump completed: Sat Jan 27 16:48:54 2001 DUMP: DUMP: Average transfer rate: 2535 KB/s DUMP: DUMP IS DONE

Formation permanente ARS

146

Mcanismes de sauvegarde

Utilitaires

dump, restore

La commande pour relire une sauvegarde ralise par dump est restore (sur Solaris, utiliser

/sbin/ufsrestore).

Possibilit de restoration totale automatique :

cd partition-vide restore -r -f archive

On peut utiliser dump + restore pour dupliquer une arborescence. Par exemple :

dump 0f - /usr/local | ( cd /mnt ; restore rf - )

Formation permanente ARS

147

Mcanismes de sauvegarde

Utilitaires

dump, restore

Possibilit de restoration en mode interactif avec slection de ce que lon restorer :

restore -f archive -i puis utiliser les commandes add fichier/dir, cd dir, delete fichier/dir, ls et la commande extract :
[root@localhost d]# restore -f /tmp/archive -i ... restore > ls .: etc/ restore > cd etc restore > ls ./etc: ... im_palette-small.pal restore > add yp.conf restore > ls ./etc: im_palette-small.pal

passwd.OLD

yp.conf

passwd.OLD

*yp.conf

Formation permanente ARS

148

Mcanismes de sauvegarde

Utilitaires

dump, restore

restore > extract You have not read any tapes yet. Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume #: 1 set owner/mode for .? [yn] y restore > quit [root@localhost d]# ls -Rl .: total 8 drwxr-xr-x 2 root root 4096 Jan 27 14:47 etc ./etc: total 4 -rw-r--r--

1 root

root

361 Jan 26 14:51 yp.conf

Formation permanente ARS

149

Mcanismes de sauvegarde

Utilitaire

tar

25.3 Utilitaire tar


tar utilitaire assure une sauvegarde en accdant normalement au lesystem Unix.

Cette commande a un immense avantage : elle est disponible sur la totalit des plateformes Unix.

Contrairement dump, elle permet la sauvegarde dune partie seulement dune partition. En fait, on peut sauvegarder des chiers ou directories sans aucun rapport entre eux.

Syntaxe :

tar cvf archive fichiers

Formation permanente ARS

150

Mcanismes de sauvegarde

Utilitaire

tar

De prfrence, utiliser le GNU tar :

ftp://ftp.lip6.fr/pub/gnu/tar-1.12.tar.gz
associ au GNU zip :

ftp://ftp.lip6.fr/pub/gnu/gzip-1.2.4.tar
Avantages : le GNU tar ne sauve pas les chiers avec un / initial ; il offre la possibilit de se cantonner au sein dun lesystem.

Formation permanente ARS

151

Mcanismes de sauvegarde

Utilitaire

tar

Problmes classiques avec tar : Il ne sait pas sauver convenablement les major et minor numbers des chiers de /dev. Pour sauver /dev, on prfrera plutt recrer les devices partir de /dev/MAKEDEV.

Par dfaut, il ne sait pas sauver un chier trous (les blocs intermdiaires non allous sont sauvs sous forme de caractre de code ASCII zro).

Formation permanente ARS

152

Mcanismes de sauvegarde

Utilitaire

tar

Exemple de sauvegarde par tar option "c" :

# tar cvf archive /etc [root@localhost /tmp]# tar cvf archive /etc tar: Removing leading / from member names etc/ etc/csh.cshrc etc/csh.login etc/exports etc/filesystems etc/group etc/host.conf etc/hosts.allow etc/hosts.deny ...

Formation permanente ARS

153

Mcanismes de sauvegarde

Utilitaire

tar

Exemple de consultation de la table de contenu de larchive (option "t") :


# tar tvf archive [root@localhost /tmp]# tar tvf archive drwxr-xr-x root/root 0 2001-01-27 14:47:46 etc/ -rw-r--r-- root/root 220 2000-01-13 00:18:52 etc/csh.cshrc -rw-r--r-- root/root 674 2000-01-13 17:24:18 etc/csh.login -rw-r--r-- root/root 0 2000-01-13 00:18:52 etc/exports -rw-r--r-- root/root 43 2000-02-17 22:42:07 etc/filesystems -rw-r--r-- root/root 419 2001-01-26 14:51:13 etc/group -rw-r--r-- root/root 26 2000-01-13 00:18:52 etc/host.conf -rw-r--r-- root/root 161 2000-01-13 00:18:52 etc/hosts.allow -rw-r--r-- root/root 347 2000-01-13 00:18:52 etc/hosts.deny ... drwxr-xr-x root/root 0 2001-01-26 14:48:49 etc/profile.d/ ...

Formation permanente ARS

154

Mcanismes de sauvegarde

Utilitaire

tar

Extraction dun chier option "x" :


[root@localhost /tmp]# ls -l etc/passwd ls: etc/passwd: No such file or directory [root@localhost /tmp]# tar xvf archive etc/passwd etc/passwd [root@localhost /tmp]# ls -l etc/passwd -rw-r--r-1 root root 597 Jan 27 14:47 etc/passwd

Formation permanente ARS

155

Mcanismes de sauvegarde

Utilitaire

tar

Sur Internet, il y a souvent des packages avec ".tar.gz" ou ".tgz" comme sufxes. Comment en extraire le contenu ?

% gunzip foo.tar.gz % tar xvf foo.tar ...


Cela ncessite le GNU zip.

Si lon a le GNU tar, on peut combiner les 2 oprations en une seule :

% gtar xvzf foo.tar.gz ...

Formation permanente ARS

156

Mcanismes de sauvegarde

Utilitaire

tar

Exemple demploi de tar pour dupliquer une arborescence :


( cd /usr/local ; tar cf - . ) | ( cd /mnt ; tar xf - )

Formation permanente ARS

157

Mcanismes de sauvegarde

Quelques rgles

25.4 Quelques rgles

1. Sauvegarder 2. Sauvegarder lorsque le lesystem est le moins actif : en mode mono-utilisateur pendant les priodes creuses dutilisation (la nuit par exemple) 3. Ne jamais restaurer de chiers dans le homedir dun utilisateur de peur dy effacer des chiers plus rcents que ceux de la sauvegarde. 4. Vriez priodiquement les sauvegardes. 5. Conserver un jeu de sauvegardes ok part des autres en cas de destruction des autres par un sinistre.

Formation permanente ARS

158

Mcanismes de sauvegarde

Quelques rgles

Matriels encrasss suite un incendie (1/4).


Formation permanente ARS 159

Mcanismes de sauvegarde

Quelques rgles

Matriels encrasss suite un incendie (2/4).


Formation permanente ARS 160

Mcanismes de sauvegarde

Quelques rgles

Matriels encrasss suite un incendie (3/4).


Formation permanente ARS 161

Mcanismes de sauvegarde

Quelques rgles

Carte mre encrasse suite un incendie (4/4).


Formation permanente ARS 162

Mcanismes de sauvegarde

Quelques rgles

Faux plafond effondr suite une inondation.


Formation permanente ARS 163

Mmoire virtuelle

Chapitre 26 : Mmoire virtuelle 26.1 Principe des partitions de swap


Unix systme multi-utilisateurs + multi-tche

gestion sophistique de la mmoire de tous les

processus Principe approximatif : Un processus a limpression davoir un espace mmoire > RAM. Cest la mmoire virtuelle. Lespace mmoire est dcoupe en segments de taille donne, les pages. On charge les pages dun processus en RAM au fur et mesure des besoins. Cest la pagination. Quand la RAM est "pleine", et que lon doit charger des pages, on copie sur disque de vieilles pages et on les limine de la RAM pour les remplacer par les nouvelles pages. Cest ce que lon appelle swapper.

Il faut toujours une partition pour le swap.


La partition de swap est cre comme les autres partitions rgulires. Par contre, on na pas besoin de faire "newfs" sur la partition de swap.
Formation permanente ARS 164

Mmoire virtuelle

Activation de partitions de swap au boot, /etc/fstab, swapon

-a

26.2 Activation de partitions de swap au boot, /etc/fstab, swapon


Les scripts de dmarrage activent automatiquement le swap via la commande consulte le chier /etc/fstab ou quivalent : sur Linux : cf /etc/fstab : /dev/hda2 none swap
sw 0 0 # Linux

-a

swapon -a qui

sur Solaris : cf /etc/vfstab : #device device mount #to mount to fsck point # /dev/dsk/c0t0d0s1 -

FS type swap

fsck pass -

mount mount at boot options no -

Formation permanente ARS

165

Mmoire virtuelle

Taille du swap, free, swap

-s

26.3 Taille du swap, free, swap


Quelle taille donner une partition de swap ? Par tradition on met trois fois la RAM.

-s

En cas de taille de swap insufsante, ae, problmes :


% ./programme-gourmand No swap space available Sep 15 17:07:43 cerise /kernel: pid 335 (z), uid 0, was killed: out of swap space

Formation permanente ARS

166

Mmoire virtuelle

Taille du swap, free, swap

-s

Comment connatre la taille du swap ? sur Linux : utiliser free # free total Mem: 129488 -/+ buffers: Swap: 259768

used 121716 16892 0

free 7772 112596 259768

shared 4136

buffers 104824

sur Solaris : utiliser swap -l ou swap -s # /usr/sbin/swap -l swapfile dev swaplo blocks free swapfs 0 139408 123280 /dev/dsk/c0t3d0s1 32,25 8 98488 98488
# /usr/sbin/swap -s total: 8264k bytes allocated + 3520k reserved = 11784k used, \ 52632k available

Formation permanente ARS

167

Mmoire virtuelle

Fichiers de swap, mkfile, dd

26.4 Fichiers de swap, mkfile, dd


A savoir : on peut utiliser des chiers pour swapper au lieu de partitions mais tous les systmes ne le permettent pas. Avantages : en cas de swap insufsant, il est simple de crer un chier de swap. Inconvnients : 1. une fois ajout au swap, il est impossible de faire machine arrire ; pour supprimer le chier de swap, il faut rebooter. 2. swap via le lesystem et non via en dessous

Formation permanente ARS

168

Mmoire virtuelle

Fichiers de swap, mkfile, dd

Comment gnrer des chiers de swap ? 2 mthodes : via la commande mkfile si elle est disponible sur lUnix : # mkfile 50m grosfichier # ls -l grosfichier -rw------- 1 besancon 52428800 Nov 16 01:27 grosfichier via la commande dd : # dd if=/dev/zero of=grosfichier bs=1m count=50 50+0 records in 50+0 records out 52428800 bytes transferred in 3.533640 secs (14837052 bytes/sec) # ls -l grosfichier -rw------- 1 besancon 52428800 Nov 16 01:27 grosfichier

Faire ensuite :
# swapon /chemin/vers/grosfichier

Formation permanente ARS

169

Processus

Chapitre 27 : Processus

Unix est synonyme de multitches. Laspect multitche se voit par la commande


% ps -aux USER PID %CPU %MEM root 1 0.0 0.1 root 2 0.0 0.0 root 3 0.0 0.0 ... nobody 476 0.0 0.1 daemon 490 0.0 0.0 xfs 636 0.0 0.3 root 14703 0.0 0.0 root 9813 0.0 0.0 idiri 20810 0.0 0.0 idiri 20837 0.0 0.0 idiri 20863 0.0 0.0 besancon 21785 0.0 1.3 idiri 23600 0.0 0.0 idiri 23660 0.2 1.5 ... VSZ 1120 0 0 1300 1144 2820 2256 6912 6552 2080 1996 1732 1844 1860 RSS 52 0 0 44 0 120 0 0 0 0 0 416 0 472 TTY ? ? ? ? ? ? tty1 ? ? ? pts/0 pts/1 tty1 tty2 STAT S SW SW S SW S SW SW SW SW SW S SW S START Oct23 Oct23 Oct23 Oct23 Oct23 Oct23 Oct25 Oct31 15:13 15:13 15:13 15:25 16:26 16:39 TIME 0:06 0:00 0:01 0:01 0:00 0:18 0:00 0:09 0:01 0:00 0:00 0:00 0:00 0:01

ps

COMMAND init [kflushd] [kupdate] [identd] [atd] xfs -droppriv -da [login] [kdm] [kwm] [tcsh] [tcsh] -bash [vi] vi probleme6.c

Formation permanente ARS

170

Processus

Comment bien utiliser "ps" ? Une bonne utilisation de "ps" repose sur la connaissance des diffrentes options employables. La difcult est que les options sont diffrentes selon que le systme est de type BSD ou AT&T. On retiendra : (BSD)

ps -aux

ps -edf

(AT&T)

Formation permanente ARS

171

Processus

Version BSD de ps

27.1 Version BSD de ps

ps : les processus associs son terminal ps -x : tous ses processus


% ps -x PID TT 24578 p7 24600 p7 24602 p7 24899 p7 24881 p8 STAT Ss S I R+ Ss+ % ps PID 24578 24600 24602 24876 TT p7 p7 p7 p7 STAT Ss S I R+ TIME 0:00.33 0:00.52 0:00.99 0:00.00 COMMAND -bash (bash-2.01) xdvi.bin partie-03.dvi gs -sDEVICE=x11 -dNOPAUSE -dSAFER -q - (gs-5.10) ps

TIME 0:00.34 0:00.52 0:00.99 0:00.00 0:00.27

COMMAND -bash (bash-2.01) xdvi.bin partie-03.dvi gs -sDEVICE=x11 -dNOPAUSE -dSAFER -q - (gs-5.10) ps -x -bash (bash-2.01)

Formation permanente ARS

172

ps -ax : tous les processus de la machine


% ps -ax PID TT 0 ?? 1 ?? 2 ?? 3 ?? 4 ?? ... 24496 p6 24578 p7 24600 p7 24602 p7 24935 p7 24881 p8 3869 p9 ... STAT DLs Ss DL DL DL I+ Ss S I R+ Is+ Is TIME COMMAND 0:00.59 (swapper) 0:01.18 /sbin/init -1:25.50 (pagedaemon) 0:00.00 (vmdaemon) 2:35.03 (update) 0:00.01 0:00.35 0:00.55 0:00.99 0:00.00 0:00.27 0:00.16

Processus

Version BSD de ps

rlogin alpha -bash (bash-2.01) xdvi.bin partie-03.dvi gs -sDEVICE=x11 -dNOPAUSE -dSAFER -q - (gs-5.10) ps -ax -bash (bash-2.01) -tcsh (tcsh-6.07)

Formation permanente ARS

173

ps -aux : tous les processus de la machine avec les noms de login associs
% ps -aux USER PID %CPU %MEM satish 24499 3.7 5.8 root 1 0.0 0.1 root 2 0.0 0.0 root 3 0.0 0.0 ... besancon 24578 0.0 0.7 besancon 24600 0.0 1.9 VSZ RSS 9320 7504 484 76 0 12 0 12 784 944 1108 2456 TT p5 ?? ?? ?? p7 p7 STAT SN Is DL DL Ss S STARTED 4:31PM Wed04PM Wed04PM Wed04PM 4:44PM 4:44PM

Processus

Version BSD de ps

TIME COMMAND 0:39.34 /usr/local/net 0:01.18 /sbin/init -1:25.50 (pagedaemon) 0:00.00 (vmdaemon) 0:00.36 -bash (bash-2. 0:00.60 xdvi.bin parti

ps -w : Parfois la commande est tronque par "ps -ax" :


% ps -ax PID TT ... 368 ?? STAT Is TIME COMMAND

0:04.36 sendmail: accepting connections on port 25 (sendmail-

On utilise alors "ps


% ps -axw ... 368 ??

-axw" :

Is

0:04.36 sendmail: accepting connections on port 25 (sendmail-8.8.6)

ps -ww : Encore plus de caractres afchs par rapport "ps

-w".
174

Formation permanente ARS

Processus

Version System-V de ps

27.2 Version System-V de ps

ps -e : tous les processus de la machine


% ps -e PID TTY 0 ? 1 ? 2 ? 3 ? 181 ? 306 ? 49 ? 51 ? 123 ? 137 ? ... TIME 0:01 0:02 0:00 0:52 0:06 0:00 0:00 0:00 0:01 0:01 CMD sched init pageout fsflush automoun sac devfseve devfsadm rpcbind rpc.nisd

Formation permanente ARS

175

ps -l : afchage sous forme longue


% ps -l F S UID PID PPID 8 S 999 16463 16461 C PRI NI 0 40 20 ADDR ? SZ 172 WCHAN TTY ? pts/0

Processus

Version System-V de ps

TIME CMD 0:00 csh

ps -f : full listing

% ps -edf UID PID PPID root 0 0 root 1 0 root 2 0 root 3 0 root 181 1 ... daemon 283 1 root 291 1 root 296 1 nobody 15130 291 besancon 16463 16461 ...

C 0 0 0 0 0 0 0 0 0 0

STIME 09:09:47 09:09:47 09:09:47 09:09:47 09:12:07 09:12:12 09:12:13 09:12:14 23:30:56 00:12:26

TTY ? ? ? ? ? ? ? ? ? pts/0

TIME 0:01 0:02 0:00 0:52 0:06 0:11 0:00 0:00 0:00 0:00

CMD sched /etc/init pageout fsflush /usr/lib/autofs/automountd /usr/sbin/lpd /usr/local/apache/bin/httpd /usr/local/admin/lib/idled /usr/local/apache/bin/httpd -csh

Formation permanente ARS

176

Processus

Utilitaire

top

27.3 Utilitaire top


Inconvnient de ps : cest la liste des processus un instant . On ne pourra jamais sous Unix avoir la liste des processus en cours : le temps de chercher les processus et de faire le rapport lcran, certains processus peuvent avoir disparu.

Amlioration de ps : la commande disponible lURL :

top

ftp://ftp.groupsys.com/pub/top/

Son intrt : elle afche une liste des processus toutes les secondes

Formation permanente ARS

177

Processus

Contrle de processus : kill

27.4 Contrle de processus : kill


Mauvais choix de nom de commande. La commande kill sert communiquer avec des processus : arrt de processus, demande au processus de se recongurer, passage en mode verbeux du processus, etc.

Syntaxes :

kill -signal PID... kill -nombre PID... kill -l


avec pour principaux signaux ;
1 2 3 6 9 14 15 HUP (hang up) INT (interrupt) QUIT (quit) ABRT (abort) KILL (non-catchable, non-ignorable kill) ALRM (alarm clock) TERM (software termination signal)
178

Formation permanente ARS

Processus

Contrle de processus : kill

Par exemple, les 2 formes suivantes sont quivalentes :


% kill -9 2878 % kill -KILL 2878

Pour recongurer certains utilitaires systme, on utilise souvent le signal SUGHUP :


# ps -ax | grep syslog 74 ? IW 0 0:44 syslogd 2906 p6 S 2 0:00 grep syslog # kill -HUP 74 # tail -1 /var/log/syslog Nov 2 23:34:29 choc syslogd: restart

Formation permanente ARS

179

Processus

Priorit des processus : nice / renice

27.5 Priorit des processus : nice / renice


Un processus Unix possde une priorit dexcution : son nice number. On a :

correspond la priorit maximale, correspond la priorit minimale.


Un utilisateur peut descendre la priorit de ses processus. Seul ladministrateur peut augmenter la priorit de nimporte quel processus.

nice number

Pour lancer un processus la priorit N (N pouvant tre ngatif) : nice

[-N] commande

Une fois un processus dmarr, on peut changer sa priorit par la commande :

renice priorit PID

Formation permanente ARS

180

Processus

Priorit des processus : nice / renice

Exemple de la commande nice lance par un utilisateur normal :


% nice -10 ./z % ps -aux USER PID %CPU %MEM SZ RSS TT besancon 17641 94.6 0.1 16 144 p1 ... % ps -xa PID TT STAT CPU TIME COMMAND ... 17641 p1 R N 2 0:47 ./z

STAT CPU START R N 0 23:42

TIME COMMAND 0:07 ./z

% nice --10 ./z nice: cannot set priority: Permission denied

Exemple de la commande nice lance par ladministrateur :


# nice --10 ./z # ps -xa PID TT STAT CPU TIME COMMAND ... 17663 p1 R < 0 0:04 ./z
Formation permanente ARS 181

Processus

Priorit des processus : nice / renice

Exemple de la commande renice :


% nice -10 ./z % ps -al F UID PID PPID CP PRI NI ... 20008001 4332 17665 224211 97 10 ... % renice 15 17665 17665: old priority 10, new priority % ps -al F UID PID PPID CP PRI NI ... 20008001 4332 17665 224255 102 15 ...

SZ 16

RSS WCHAN 144

STAT CPU TT R N 2 p1

TIME COMMAND 0:29 ./z

15 SZ 16 RSS WCHAN 144 STAT CPU TT R N 0 p1 TIME COMMAND 1:44 ./z

Formation permanente ARS

182

Processus

Charge du systme : uptime

27.6 Charge du systme : uptime


Pour obtenir la charge du systme, utiliser la commande
% uptime 11:15pm

uptime :

up

4:44,

4 users,

load average: 0.12, 0.02, 0.00

Quels sont les renseignements renvoys :

le temps de fonctionnement du systme le nombre dutilisateurs connects la charge du systme : 3 nombres reprsentant :
la moyenne de processus actifs durant la minute prcdente la moyenne de processus actifs durant les 5 dernires minutes la moyenne de processus actifs durant les 15 dernires minutes

Formation permanente ARS

183

Processus

Charge du systme : uptime

Difcult de dnir une valeur normale : de nombreux processus en attente dune entre sortie donnent un fort indice de charge alors que le systme est en parfaite mesure de rpondre efcacement un seul processus sollicitant fortement la mmoire virtuelle de la machine en swappant sans cesse peut lui seul empcher la machine de rpondre alors que lindice de charge est bas on traite indiffremment les processus renics et ceux qui ne le sont pas On prendra comme valeur normale une valeur de 3.

On prfrera les renseignements renvoys par ps pour se faire une ide de la charge rlle du systme.

Formation permanente ARS

184

Processus

Processus non tuables, processus zombie

27.7 Processus non tuables, processus zombie


Il arrive occasionnellement quun processus soit non tuable par la commande kill mme avec le signal SIGKILL (-9). Ces processus tombent dans 3 catgories :

Processus en attente dcriture travers NFS Processus en attente dopration physique sur un priphrique Processus zombie, marqus par un Z ou <defunct> lorsque lon fait ps, gnr lorsquun
processus se termine et ne reoit pas ce moment l dacknowledgement de la part de son parent (par exemple parce que le processus pre est dj mort). Ces processus ne sont pas gnant : ils ne consomment plus de ressouces. Ils disparaitront au prochain reboot de la machine. La seule gne est la consommation dune entre processus dans le tableau interne du noyau de gestion des processus.

Formation permanente ARS

185

Processus

Processus non tuables, processus zombie

Programme C de cration de processus zombie (auteur : Pierre.David@crc.u-strasbg.fr)


main (int argc, char *argv []) { switch (fork ()) { case -1 : /* erreur */ perror ("fork") ; exit (1) ; case 0 : /* fils */ exit (0) ; /* => zombification */ default : /* pre */ pause () ; /* => pre indigne : il se fiche de la mort du fils */ } }

Lexcution du programme donne :


% ./zombie & [1] 16274 % ps -edf | grep 16274 besancon 16274 18533 0 17:31:44 pts/3 besancon 16275 16274 0

0:00 ./zombie 0:00 <defunct>

Le processus 16275 est un processus zombie.


Formation permanente ARS 186

Threads

Chapitre 28 : Threads

28.1 Processus Unix


Un processus Unix est une tche dnie par : le code machine excuter (text) une pile dexcution (user stack) diffrentes zones mmoire stockant les structures manipules par le code machine du programme (initialized data, bss, heap) diffrentes zones mmoire stockant les informations systme sur le processus (argc, argv, user area, red zone, kernel stack)

(cf <sys/proc.h>, <sys/user.h>) ce qui donne le schma de la page suivante :


Formation permanente ARS 187

Threads
0xFFF00000 (high address) perprocess kernel stack

Processus Unix

red zone

user area

ps string structure

signal code

environnment strings

argv strings command line arguments and shell environment

env pointers

argv pointers

argc

user stack

heap

bss

symbol table

initialized data

initialized data

0x00000000 (low address)

text

text

linker header & magic header

Formation permanente ARS

188

Threads

Processus Unix

Crer de nouveaux processus passe par la fonction C fork() Crer un nouveau processus, cest dupliquer toutes ces structures mmoire.
0xFFF00000 (high address) perprocess kernel stack perprocess kernel stack perprocess kernel stack

red zone

red zone

red zone

user area

user area

user area

ps string structure

ps string structure

ps string structure

signal code

signal code

signal code

environnment strings

environnment strings

environnment strings

argv strings

argv strings

argv strings

env pointers

fork()

env pointers

argv pointers

argv pointers

env pointers

argv pointers

argc

argc

argc

user stack

user stack

user stack

heap

heap

heap

bss

bss

bss

initialized data

initialized data

initialized data

0x00000000 (low address)

text

text

text

Un fork() est un mcanisme couteux.


Formation permanente ARS 189

Threads

Processus Unix

Au niveau de lexcution du code :

avant le fork()

aprs le fork()
... ... if ( fork() ) { ... /* parent */ ... /* code */ } else { ... /* child */ ... /* code */ } ... ...

le pre reprend ici

... ... if ( fork() ) { ... /* parent */ ... /* code */ } else { ... /* child */ ... /* code */ } ... ...

... ... if ( fork() ) { ... /* parent */ ... /* code */ } else { ... /* child */ ... /* code */ } ... ...

le fils reprend ici

Formation permanente ARS

190

Threads

Processus Unix

Principale utilisation : fork() + exec() :

avant le fork()

aprs le exece()
... ... if ( fork() ) { ... /* parent */ ... /* code */ } else { exec(...) /* child */ ... /* code */ } ... ...

le pre reprend ici

... ... if ( fork() ) { ... /* parent */ ... /* code */ } else { exec(...) /* child */ ... /* code */ } ... ...

aprs le exec()
... ... if ( fork() ) { ... /* parent */ ... /* code */ } else { exec(...) /* child */ ... /* code */ } ... ...

exec()
le fils reprend ici

... ... /* autre code */ ... ...

Formation permanente ARS

191

Threads

Principes des threads

28.2 Principes des threads


Un thread Lightweigth process un programm counter, une stack, un jeu de registres, tout le

reste est partag avec le processus


TEXT TEXT

Des threads Un thread

DATA

DATA

STACK

STACK

STACK

STACK

Un processus traditionnel

Un processus multithread

Formation permanente ARS

192

Threads

Principes des threads

Dveloppement commenc sous Unix dans les annes 1980.

Les threads sont un hritage du systme MACH qui y empruntent la terminologie : task, thread

Un processus Unix

une task + un seul thread

Standards Posix : P1003.1b nal draft 14 (realtime) et P1003.1c nal draft 10 (multithreading)

Formation permanente ARS

193

Threads

Avantages / Problmatique des threads

28.3 Avantages / Problmatique des threads


Avantages des threads : cration light des threads (60 % plus rapide de crer un thread quun processus) possibilit de crer des applications concurrentes sur des machines mono ou multi processeurs en tant compltement transparentes pour lutilisateur possibilit de faire des applications non bloquantes (le plus souvent en termes dI/O)

amlioration du temps de rponse

exemple : serveur web Apache 2.x pour traiter plus de connexions en parallle cf http://httpd.apache.org Inconvnients des threads : penser en profondeur le code programmer : attention aux race conditions (les threads sont ordonnancs et excuts au hasard par lOS) attention la non rentrance du code (variables statiques ou globales a priori bannies)

le code doit tre thread safe

utilisation de mutex ou de POSIX condition variable pour synchroniser les threads entre eux, avec risque de deadlocks malgr tout
Formation permanente ARS 194

Threads

Visualisation des threads

28.4 Visualisation des threads


Sur Solaris, utiliser loption

-L de ps ou les options dafchage lwp et nlwp :

% ps -e -o pid,user,lwp,nlwp,comm PID USER LWP NLWP COMMAND ... 361 root 1 8 /usr/sbin/nscd 361 root 2 8 /usr/sbin/nscd 361 root 3 8 /usr/sbin/nscd 361 root 4 8 /usr/sbin/nscd 361 root 5 8 /usr/sbin/nscd 361 root 6 8 /usr/sbin/nscd 361 root 7 8 /usr/sbin/nscd 361 root 8 8 /usr/sbin/nscd ...

Ici on voit que le processus Unix 361 comporte en fait 8 threads.

Formation permanente ARS

195

Threads

Visualisation des threads

Sur LINUX, utiliser loption

-m :

% ps -m ps: error: Thread display not implemented. usage: ps -[Unix98 options] ps [BSD-style options] ps --[GNU-style long options] ps --help for a command summary

Linux, cest mieux quUnix. . .

Formation permanente ARS

196

Threads

Compilation avec threads

28.5 Compilation avec threads


La librairie pour le link sappelle traditionnellement par -lpthread (pthread Posix Thread)

Si votre systme na pas de thread intgrs, se reporter aux GNU Portable Threads ou

http://www.gnu.org/software/pth/ (download sur ftp://ftp.lip6.fr/pub/gnu/pth/)

Il y a des threads non Posix. Par exemple les threads Solaris, cf -lthread.

Pour un manuel de programmation, se reporter par exemple au manuel SUN intitul Multithread Programming Guide dURL ftp://192.18.99.138/802-5938/802-5938.pdf

Formation permanente ARS

197

Programmation de tches priodiques

Chapitre 29 : Programmation de tches priodiques

29.1 Utilitaire cron


Ladministrateur doit lancer priodiquement des actions (nettoyage de /tmp, remise lheure par rapport une horloge de rfrence, etc.). Il existe un systme automatisant ces lancement : cron

Le dmon

cron est lanc par les scripts de dmarrage du boot :

Sur Linux :
% ls -l /etc/rc.d/init.d/crond -rwxr-xr-x 1 root root 1031 Feb 3 2000 /etc/rc.d/init.d/crond

Sur Solaris :
% ls -l /etc/init.d/crond -rwxr--r-- 4 root sys 513 Jul 16 1997 /etc/init.d/cron

Formation permanente ARS

198

Programmation de tches priodiques

Fichiers crontab

29.2 Fichiers crontab


Les actions lancer priodiquement sont indiques dans un chier texte au format :

minutes heures jour-du-mois mois jour-de-semaine commande

champ 1 : minutes, de 00 59. champ 2 : heures, de 00 23. champ 3 : jour du mois, de 1 31. champ 4 : mois, de 1 12. champ 5 : jour de la semaine, de 0 (dimanche) 6 (samedi). champ 6 : commande excuter.
Par exemple :
15 * */2 * 00 21 00 21 00 21 * * * * * * * * * * * * 1 3 5

/etc.local/cron/scripts/ntpdate /etc.local/cron/scripts/check-devnull /etc.local/cron/scripts/tartare /etc.local/cron/scripts/tartare /etc.local/cron/scripts/tartare

Formation permanente ARS

199

Programmation de tches priodiques

Fichiers crontab

Lemplacement des chiers crontab dpend des systmes : Systme AIX HP-UX FreeBSD Linux Solaris Program

/var/spool/cron/crontabs/ /var/spool/cron/crontabs/ /var/cron/tabs/ /var/spool/cron/ /var/spool/cron/crontabs/

Il y a un chier crontab par utilisateur dans les directories mentionns ci-dessus.

Formation permanente ARS

200

Programmation de tches priodiques

Excution des chiers crontab

29.3 Excution des chiers crontab


(Question 100 sous : pourquoi ne faut-il rien programmer entre 2 h et 3h du matin ?)

Les commandes programms sexcutent sans terminal associ. Il ny a donc pas de stdin ou

stdout associs. Il faut raliser soi-mme les redirections requises car sinon, tout ce qui est crit sur stdout ou stderr est envoy par mail au propritaire des chiers crontab.

Soit le shell script suivant qui est lanc via crontab :


#!/bin/sh echo blabla bla bla echo erreuuurrrrrrrrrrrrrrrr >&2 exit 0
Formation permanente ARS 201

Programmation de tches priodiques

Excution des chiers crontab

Aprs son excution, on trouve dans sa boite aux lettres :


From besancon Sat Aug 10 23:20:00 2002 Return-Path: <besancon> Received: (from besancon@localhost) by fantomas.unixiens.org (8.11.6+Sun/8.11.6) id g7ALK0W23530 for besancon; Sat, 10 Aug 2002 23:20:00 +0200 (MEST) Date: Sat, 10 Aug 2002 23:20:00 +0200 (MEST) From: Thierry Besancon <besancon> Message-Id: <200208102120.g7ALK0W23530@fantomas.unixiens.org> To: besancon Subject: Output from "cron" command Content-Type: text Content-Length: 118 Your "cron" job on fantomas.unixiens.org /tmp/demo produced the following output: blabla bla bla erreuuurrrrrrrrrrrrrrrr

Formation permanente ARS

202

Programmation de tches priodiques

Edition des chiers crontab

29.4 Edition des chiers crontab


Les chiers crontab ont beau tre au format texte, il ne faut pas les diter manuellement. Il faut passer par lintermdiaire de la commande de la commande : 1.

crontab. Il y a deux faons de faire selon les versions

crontab -e
Cela lance lditeur de texte indiqu par la variable denvironnement dfaut.

EDITOR ou bien vi par

2.

crontab -l > myfile vi myfile crontab myfile

Formation permanente ARS

203

Programmation de tches priodiques

Autorisation utiliser cron, cron.allow, cron.deny

29.5 Autorisation utiliser cron, cron.allow, cron.deny


Les chiers cron.allow et cron.deny contrlent lutilisation de cron.
Systme Linux Program

/etc/cron.allow /etc/cron.deny

Solaris

/etc/cron.d/cron.allow /etc/cron.d/cron.deny

Ces 2 chiers ont la mme syntaxe : ils contiennent des noms de login.
cron.allow Prsent Prsent cron.deny Prsent Prsent Utilisateurs autoriss Ceux explicitement dans cron.allow Ceux explicitement dans cron.allow Tous sauf ceux dans cron.deny Uniquement root

Il est conseill de ne laisser laccs cron qu lutilisateur root.


Formation permanente ARS 204

Horloges Unix

Chapitre 30 : Horloges Unix

Pour Unix, le dbut du temps est le 1 janvier 1970. La n du temps : le mardi 19 janvier 2038 4 h 14 min 7s (heure GMT) (cest--dire 2147483647 secondes

0x7fffffff)

Lhorloge sert dater les chiers, lancer des applications des moments prcis voulus (cf cron), dater des vnements, etc.

Problmes classiques : mise lheure dune horloge, consultation dune horloge, an 2000, etc.

Formation permanente ARS

205

Horloges Unix

Consultation de lhorloge : date

30.1 Consultation de lhorloge : date


Syntaxe : date

[+format]

% date Thu Oct 22 22:00:51 CEST 1998

date +format utilise un format la printf avec des %. Cf la page de manuel de la fonction strftime.
Les bigrammes les plus utiles :
%H %M %S %T %m %d %y %Y
heure (00..23) minute (00..59) seconde (00..61) temps (hh :mm :ss) mois, (01..12) jour, (01..31) derniers chiffres de lanne (00..99) anne (1970. . .)

Formation permanente ARS

206

Horloges Unix

Consultation de lhorloge : date

Exemples dutilisation : Avoir la date sous la forme YYYY/MM/DD :

% date +%Y/%m/%d 1998/02/22


Avoir le jour de la semaine :

% date +%w 4
Avoir le numro de la semaine :

% date +%W 42

Pour des informations mathmatiques sur les dates (annes bissextiles, calcul du jour de la semaine etc., on pourra se reporter :

ftp://ftp.lip6.fr/pub/doc/faqs/sci-math-faq/dayWeek.gz

Formation permanente ARS

207

Horloges Unix

Commande date amliore : GNU date

30.2 Commande date amliore : GNU date


Il existe une commande plus sophistique : le GNU date dURL

ftp://ftp.lip6.fr/pub/gnu/sh-utils/sh-utils-2.0.tar.gz
On peut grce cette commande calculer des choses impossibles calculer autrement :
% date Wed Aug

5 11:09:06 MET DST 1998

% date +%Y/%m/%d 1998/08/05 % date +%Y/%m/%d 1998/08/15 % date +%Y/%m/%d 1998/07/26 % date +%Y/%m/%d 1999/10/08 % date +%Y/%m/%d 1997/06/02 % date +%Y/%m/%d 1998/08/19

--date "10 days" --date "-10 days" --date "1 years 2 months 3 days" --date "-1 years -2 months -3 days" --date "1 fortnight"

Formation permanente ARS

208

Horloges Unix

Rglage de lhorloge : date

30.3 Rglage de lhorloge : date


La commande date permet de rgler lhorloge de la machine. Syntaxes :

date [options] [mmdd]HHMM date [options] mmddHHMM[cc]yy[.SS]


Par exemple
# date Fri Sep 11 11:40:33 CEST 1998 # date 09110938 Fri Sep 11 09:38:00 CEST 1998 # date Fri Sep 11 09:38:04 CEST 1998

Attention aux commandes date non compatibles an 2000.


Formation permanente ARS 209

Horloges Unix

Heure dt Heure dhiver

30.4 Heure dt Heure dhiver


Le rglage de lheure dt, heure dhiver se fait au niveau des chiers suivants :
AIX DEC FreeBSD HP-UX 10 IRIX Linux SunOS Solaris

/etc/environment /etc/zoneinfo/localtime /etc/localtime /etc/TIMEZONE /etc/TIMEZONE /usr/lib/zoneinfo/localtime /usr/share/lib/zoneinfo/localtime /etc/TIMEZONE

Pour la France on prend MET-1DST (Middle European Time Daylight Saving Time) La variable denvironnement TZ permet de changer de fuseau horaire lors de lafchage de date.
Formation permanente ARS 210

Horloges Unix

Synchronisation dhorloges : rdate

30.5 Synchronisation dhorloges : rdate


Problme : la drive dhorloge (par exemple les horloges des PC sont mauvaises et drivent de faon non ngligeable) Or de nombreux services rseau Unix ont besoin dune horloge able.

besoin dune synchronisation dhorloges


Une solution : rdate Syntaxe : rdate

machine

Cf ftp://ftp.inria.fr/network/time/rdate.shar.Z Problmes : synchronisation sur une seule machine blocage de la commande en cas de machine HS

Formation permanente ARS

211

Horloges Unix

Synchronisation dhorloges : NTP (Network Time Protocol)

30.6 Synchronisation dhorloges : NTP (Network Time Protocol)


Autre solution : Network Time Protocol Cf :

http://www.eecis.udel.edu/~ntp/ http://www.cru.fr/NTP/ http://www.sun.com/blueprints/0701/NTP.pdf http://www.sun.com/blueprints/0801/NTPpt2.pdf http://www.sun.com/blueprints/0901/NTPpt3.pdf

La synchronisation se fait en considrant lheure de plusieurs machines de rfrences (quipes par exemple dhorloges atomiques) et en tenant compte des dlais de transmission via le rseau.

Pour une liste de serveurs de temps en France, se reporter

http://www.cru.fr/NTP/serveurs_francais.html
Formation permanente ARS 212

Horloges Unix

Synchronisation dhorloges : NTP (Network Time Protocol)

En pratique : 1. on choisit des serveurs de temps 2. on dsigne une machine du service comme serveur dheure pour le service 3. on y installe le package NTP ce qui se traduit par lancer le dmon xntpd 4. sur les machines du service, faire "ntpdate

serveur-ntp" intervalle rgulier

Garde fou : on ne met pas la machine lheure si la diffrence dheure est trop grande :
Sep Sep too Sep 11 02:06:47 tournesol xntpd[93]: system event 4 status c621 11 02:06:47 tournesol xntpd[93]: time error -7390.467777 is way \ large (set clock manually) 11 02:06:47 tournesol xntpd[93]: system event 2 status c634

Formation permanente ARS

213

Traces systme : syslog

Chapitre 31 : Traces systme : syslog

SYSLOG est le mcanisme standard de distribution des messages envoys par les programmes. Il fonctionne au dessus de UDP (port 514), donc en mode non connect. Cf RFC3164. Il agit comme un routeur des messages. Il nutilise aucune authentication des clients SYSLOG. Le programme associ sappelle

syslogd

Formation permanente ARS

214

Traces systme : syslog

Format des messages SYSLOG

31.1 Format des messages SYSLOG


Les messages grs par SYSLOG sont tiquets. Ltiquette est compose : de la date du nom de la classe gnrique (dit facility) du programme metteur Principaux noms rencontrs : auth, authpriv, cron, daemon, ftp, kern, lpr, mail,

mark, news, ntp, syslog, user, uucp, local0 local7 * est un caractre joker.
du nom du niveau de la priorit (dit level) du message Principaux noms rencontrs : emerg, alert, crit, err, warning, notice, info,

debug * est un caractre joker (sauf sur Solaris)


Cf <syslogd.h>

Formation permanente ARS

215

Traces systme : syslog

Format des messages SYSLOG

Par exemple :
Oct Oct Oct Oct Oct Oct Oct Oct 22 22 22 22 22 22 22 22 10:57:42 10:57:42 10:57:42 10:57:42 10:57:42 10:57:42 10:57:42 10:57:42 infosystems infosystems infosystems infosystems infosystems infosystems infosystems infosystems ftpd[4405]: ftpd[4405]: ftpd[4405]: ftpd[4405]: ftpd[4405]: ftpd[4405]: ftpd[4405]: ftpd[4405]: VirtualFTP Connect to: 129.199.120.252 USER anonymous PASS pir2cache@utc.fr ANONYMOUS FTP LOGIN FROM pir2cache.utc.fr TYPE Image MDTM pub/users/besancon/cookbook SIZE pub/users/besancon/cookbook PASV

Formation permanente ARS

216

Traces systme : syslog

Fichier de conguration, /etc/syslog.conf

31.2 Fichier de conguration, /etc/syslog.conf


Les messages sont mis par les programmes et reus sur chaque machine par le dmon

syslogd. syslogd dcide quoi faire des messages sur la base de son chier de conguration, /etc/syslog.conf.

Syntaxe du chier (man

syslog.conf) :

facility.level[;facility.level]* \t action
La tabulation est indispensable.

Formation permanente ARS

217

Traces systme : syslog

Fichier de conguration, /etc/syslog.conf

Par "action", on dsigne les possibilits de distribution des messages : distribution des messages dans des chiers Indiquer pour cela un nom de chier via son path absolu ; par exemple /var/log/maillog

aiguillage des messages vers le dmon dune autre machine Indiquer pour cela un nom de machine ou son adresse IP, prcd de @ ; par exemple @serveur

afchage des messages sur un terminal particulier Indiquer pour cela le path absolu du terminal ; par exemple /dev/console

afchage des messages sur les terminaux de certains utilisateurs numrs Indiquer pour cela une liste des logins des utilisateurs (spars par une virgule) ; par exemple

root, operator utiliser * pour atteindre tous les utilisateurs connects

Formation permanente ARS

218

Traces systme : syslog

Fichier de conguration, /etc/syslog.conf

Exemple de chier /etc/syslog.conf Solaris :


# # syslog configuration file. # # This file is processed by m4 so be careful to quote () names # that match m4 reserved words. Also, within ifdefs, arguments # containing commas must be quoted. # *.err;kern.notice;auth.notice /dev/sysmsg *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err *.alert *.emerg operator root *

# if a non-loghost machine chooses to have authentication messages # sent to the loghost machine, un-comment out the following line: #auth.notice ifdef(LOGHOST, /var/log/authlog, @loghost) mail.debug ifdef(LOGHOST, /var/log/syslog, @loghost)

# # non-loghost machines will use the following lines to cause "user" # log messages to be logged locally. # ifdef(LOGHOST, , user.err /dev/sysmsg user.err /var/adm/messages user.alert root, operator user.emerg * )

Formation permanente ARS

219

Traces systme : syslog

Fichier de conguration, /etc/syslog.conf

Personnellement, le chier de ma machine contient :


*.* @sysloghost

ou version Solaris :
*.emerg *.alert *.crit *.err *.warning *.notice *.info *.debug @sysloghost @sysloghost @sysloghost @sysloghost @sysloghost @sysloghost @sysloghost @sysloghost

Il redirige tout message vers la machine sysloghost qui centralise et stocke ce message. Il vaut mieux avoir trop de messages que pas du tout ou pas ceux qui sont intressants.

Formation permanente ARS

220

Traces systme : syslog

Fichier de conguration, /etc/syslog.conf

Sur la machine sysloghost, on stockera par exemple les messages de la faon suivante :
*.* /var/log/syslog

ou version Solaris :
*.emerg *.alert *.crit *.err *.warning *.notice *.info *.debug /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog

Formation permanente ARS

221

Traces systme : syslog

Reconguration, SIGHUP, debug

31.3 Reconguration, SIGHUP, debug

syslogd est lanc par les scripts de dmarrage.

Si lon modie le chier /etc/syslog.conf, la modication est prise en compte en envoyant le signal SIGHUP au processus syslogd :
# ps -edf | grep syslogd root 339 1 0 # kill -HUP 339 Aug 04 ? 0:18 /usr/sbin/syslogd

ce qui se traduit par lmission du message SYSLOG :


Aug 19 15:02:34 cerise syslogd: configuration restart

Le signal SIGTERM arrte le processus ce qui se traduit par lmission du message SYSLOG :
Aug 19 15:02:54 cerise syslogd: going down on signal 15
Formation permanente ARS 222

Traces systme : syslog

Reconguration, SIGHUP, debug

On peut lancer le programme en mode debug via loption

-d :

# /usr/sbin/syslogd -d main(1): Started at time Mon Aug 19 15:03:51 2002 getnets(1): found 1 addresses, they are: 0.0.0.0.2.2 amiloghost(1): testing 192.168.1.1.2.2 conf_init(1): I am loghost cfline(1): (*.emerg /var/log/syslog) cfline(1): (*.alert /var/log/syslog) cfline(1): (*.crit /var/log/syslog) cfline(1): (*.err /var/log/syslog) cfline(1): (*.warning /var/log/syslog) cfline(1): (*.notice /var/log/syslog) cfline(1): (*.info /var/log/syslog) cfline(1): (*.debug /var/log/syslog) syslogd: version 1.88 Started: Mon Aug 19 15:03:51 2002 Input message count: system 0, network 0 # Outputs: 8

Formation permanente ARS

223

Traces systme : syslog

Reconguration, SIGHUP, debug

------------------------ priority = [file, facility] -----------------------0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 -------------------------------------------------0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X FILE: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 X FILE: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 X FILE: 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 X FILE: 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 X FILE: 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 X FILE: 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 X FILE: 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 X FILE: ... sys_poll(13): sys_thread started init(1): syslogd: started main(1): off & running.... net_poll(14): net_thread started sys_poll(13): blocking, init_cnt=0 logmsg(15): msg dispatcher started

/var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog /var/log/syslog

Formation permanente ARS

224

Traces systme : syslog

Surveillance des logs

31.4 Surveillance des logs


Rien ne sert de congurer Plusieurs mthodes : mthode artisanale via tail des messages mthode plus sophistique via certains programmes ddis cela ; par exemple

syslogd si lon ninspecte pas les logs recueillis.

-f fichier-de-log pour afcher en temps rl larrive

xlogmaster cf http://www.gnu.org/software/xlogmaster/ logiciel awacs cf http://www.gnu.org/software/awacs/ logiciel swatch cf ftp://ftp.stanford.edu/general/security-tools/swatch/ pour rsoudre le problme des logs qui grossissent : trimlog http://online.securityfocus.com/tools/118
logiciel
Formation permanente ARS 225

Traces systme : syslog

Autres syslog

31.5 Autres syslog


Il y a plusieurs autres implmentations de dmons SYSLOG :

Le dmon syslogd de Digital Unix introduit un mot clef spcial syslog.dated :


kern.debug mail.debug daemon.debug /var/adm/syslog.dated/kern.log /var/adm/syslog.dated/mail.log /var/adm/syslog.dated/daemon.log

Le mot syslog.dated sera remplac par la date du jour ce qui donnera :


/var/adm/syslog.dated/13-Sep-11:57/*.log /var/adm/syslog.dated/14-Sep-11:57/*.log /var/adm/syslog.dated/15-Sep-11:58/*.log

Formation permanente ARS

226

nsyslogd disponible lURL


http://coombs.anu.edu.au/~avalon/nsyslog.html

Traces systme : syslog

Autres syslog

Syslog-ng tries to ll the gaps original syslogds were lacking :


powerful congurability ltering based on message content message integrity, message encryption (not yet implemented in 1.4.x) portability better network forwarding

http://www.balabit.hu/products/syslog-ng/

Formation permanente ARS

227

Traces systme : syslog

Points faibles de SYSLOG

31.6 Points faibles de SYSLOG


Les points faibles de syslogd : 1. emploi du protocole rseau UDP Ce protocole est faible et facilement falsiable donc on peut recevoir de faux messages ou perdre des messages. Solution : RFC3195 ?

2. syslogd est un dmon fonctionnant en mode user accs au compte root de la machine.

il est arrtable par qui gagnera illgalement

3. comment tre sr de la non falsication des messages reus et stocks ?

Formation permanente ARS

228

Traces systme : syslog

Avenir de SYSLOG

31.7 Avenir de SYSLOG


Possibilits venir ? : couplage de syslogd une base de donnes genre SQL pour stocker les messages et permettre des recherches dedans

mcanisme de chiffrement pour rpondre la non falsication

http://www.corest.com/products/corewisdom/CW01.php

Formation permanente ARS

229

Traces systme : syslog

Syslog pour Windows

31.8 Syslog pour Windows


Windows NT, 2000, XP utilisent des mcanismes de journaux et non pas SYSLOG. Mais il existe des programmes apportant SYSLOG ces versions de Windows.

Laurent BARDI (lolo@ipbs.fr) a dvelopp un logiciel SYSLOG pour Windows :

PERL_NT_TOOLS/SYSLOGD
Cf http://www.ipbs.fr/logiciels/ntsyslogd/

Formation permanente ARS

230

Traces systme : syslog

Documentation

31.9 Documentation
Par exemple :

http://www.counterpane.com/log-analysis.html http://www.syslog.org

Formation permanente ARS

231