Chapitre 36. Utilitaires pour la surveillance du système

Table des matières

36.1. Liste des fichiers ouverts : lsof
36.2. Utilisateur qui accède aux fichiers : fuser
36.3. Caractéristiques d'un fichier : stat
36.4. Périphériques USB : lsusb
36.5. Informations relatives à un périphérique SCSI : scsiinfo
36.6. Processus : top
36.7. Liste de processus : ps
36.8. Arborescence de processus : pstree
36.9. Qui fait quoi : w
36.10. Utilisation de la mémoire : free
36.11. Tampon circulaire du noyau : dmesg
36.12. Systèmes de fichiers et utilisation : mount, df et du
36.13. Le système de fichiers /proc
36.14. vmstat, iostat et mpstat
36.15. procinfo
36.16. Ressources PCI : lspci
36.17. Appels système d'un processus : strace
36.18. Appels bibliothèque d'un processus : ltrace
36.19. Spécifier la bibliothèque nécessaire : ldd
36.20. Informations sur les fichiers binaires ELF
36.21. Communication inter-processus : ipcs
36.22. Mesure du temps avec time

Résumé

Dans ce chapitre vous sont présentés plusieurs programmes et mécanismes différents avec lesquels vous pouvez surveiller l'état de votre système. Vous trouverez ensuite la description de quelques utilitaires intéressants pour votre travail au quotidien avec leurs options les plus importantes.

Vous trouverez des exemples de sorties pour les commandes qui vous sont présentées. La première ligne représente la commande elle-même (après un signe dollar en tant qu'invite). Les omissions sont représentées par [...] et les longues lignes peuvent être coupées si nécessaire. Les lignes coupées sont indiquées par un backslash (\) :

$ command -x -y
output line 1
output line 2
output line 3 is annoyingly long, so long that \
    we have to break it
output line 3
[...]
output line 98
output line 99

Afin de pouvoir mentionner le plus possible d'utilitaires, leur présentation est faite brièvement. Vous trouverez plus d'informations sur chaque commande à leur page de manuel respective. La plupart des commandes comprennent également l'option --help, si bien qu'on obtient une brève liste des options possibles.

36.1. Liste des fichiers ouverts : lsof

Afin d'indiquer la liste de tous les fichiers ouverts pour le processus avec l'ID de processus PID, on utilise l'option -p. Par exemple, pour indiquer tous les fichiers utilisés par le shell en cours :

$ lsof -p $$
COMMAND  PID USER   FD   TYPE DEVICE    SIZE     NODE NAME
zsh     4694   jj  cwd    DIR   0,18     144 25487368 /suse/jj/t (totan:/real-home/jj)
zsh     4694   jj  rtd    DIR    3,2     608        2 /
zsh     4694   jj  txt    REG    3,2  441296    20414 /bin/zsh
zsh     4694   jj  mem    REG    3,2  104484    10882 /lib/ld-2.3.3.so
zsh     4694   jj  mem    REG    3,2   11648    20610 /usr/lib/zsh/4.2.0/zsh/rlimits.so
[...]
zsh     4694   jj  mem    REG    3,2   13647    10891 /lib/libdl.so.2
zsh     4694   jj  mem    REG    3,2   88036    10894 /lib/libnsl.so.1
zsh     4694   jj  mem    REG    3,2  316410   147725 /lib/libncurses.so.5.4
zsh     4694   jj  mem    REG    3,2  170563    10909 /lib/tls/libm.so.6
zsh     4694   jj  mem    REG    3,2 1349081    10908 /lib/tls/libc.so.6
zsh     4694   jj  mem    REG    3,2      56    12410 /usr/lib/locale/de_DE.utf8/LC_TELEPHONE
[...]
zsh     4694   jj  mem    REG    3,2      59    14393 /usr/lib/locale/en_US/LC_NUMERIC
zsh     4694   jj  mem    REG    3,2  178476    14565 /usr/lib/locale/en_US/LC_CTYPE
zsh     4694   jj  mem    REG    3,2   56444    20598 /usr/lib/zsh/4.2.0/zsh/computil.so
zsh     4694   jj    0u   CHR 136,48               50 /dev/pts/48
zsh     4694   jj    1u   CHR 136,48               50 /dev/pts/48
zsh     4694   jj    2u   CHR 136,48               50 /dev/pts/48
zsh     4694   jj   10u   CHR 136,48               50 /dev/pts/48

La variable shell spéciale $$, ayant comme valeur l'ID de processus du shell, a été utilisée.

Utilisée sans option, la commande lsof énumère tous les fichiers ouverts actuellement. Comme il y en a souvent des milliers, il est rarement utile de tous les afficher. Cependant, cette liste de tous les fichiers peut être combinée avec des fonctions de recherche afin de générer des listes utiles comme, par exemple, une liste de tous les périphériques caractère utilisés :

$ lsof | grep CHR
sshd       4685    root  mem    CHR    1,5             45833 /dev/zero
sshd       4685    root  mem    CHR    1,5             45833 /dev/zero
sshd       4693      jj  mem    CHR    1,5             45833 /dev/zero
sshd       4693      jj  mem    CHR    1,5             45833 /dev/zero
zsh        4694      jj    0u   CHR 136,48                50 /dev/pts/48
zsh        4694      jj    1u   CHR 136,48                50 /dev/pts/48
zsh        4694      jj    2u   CHR 136,48                50 /dev/pts/48
zsh        4694      jj   10u   CHR 136,48                50 /dev/pts/48
X          6476    root  mem    CHR    1,1             38042 /dev/mem
lsof      13478      jj    0u   CHR 136,48                50 /dev/pts/48
lsof      13478      jj    2u   CHR 136,48                50 /dev/pts/48
grep      13480      jj    1u   CHR 136,48                50 /dev/pts/48
grep      13480      jj    2u   CHR 136,48                50 /dev/pts/48

SUSE LINUX Guide de l'administrateur 9.2