Chapitre 25. Utilitaires de surveillance du système

Table des matières

25.1. Liste des fichiers ouverts : lsof
25.2. Utilisateur qui accède aux fichiers : fuser
25.3. Propriétés d'un fichier : stat
25.4. Périphériques USB : lsusb
25.5. Informations relatives à un périphérique SCSI : scsiinfo
25.6. Processus : top
25.7. Liste des processus : ps
25.8. Arborescence de processus : pstree
25.9. Qui fait quoi : w
25.10. Utilisation de la mémoire : free
25.11. Tampon circulaire du kernel : dmesg
25.12. Les systèmes de fichiers et leur utilisation : mount, df et du
25.13. Le système de fichiers /proc
25.14. Commandes vmstat, iostat et mpstat
25.15. procinfo
25.16. Ressources PCI : lspci
25.17. Appels système d'une exécution de programme : strace
25.18. Appels de bibliothèque d'une exécution de programme : ltrace
25.19. Spécification de la bibliothèque requise : ldd
25.20. Informations supplémentaires sur les fichiers binaires ELF
25.21. Communication entre processus : ipcs
25.22. Calculs de durée avec time

Résumé

Vous pouvez utiliser un certain nombre de programmes et de mécanismes, dont certains sont décrits ici, pour surveiller l'état de votre système. Ce chapitre contient également la description de certains utilitaires pratiques pour votre travail quotidien, ainsi que leurs principaux paramètres.

Pour chacune des commandes présentées, vous trouverez des exemples de sortie. Dans ces exemples, la première ligne contient la commande proprement dite (après le signe dollar de l'invite). Les commentaires sont indiqués par des crochets ([...]) et les lignes trop longues sont coupées si nécessaire. Les sauts de ligne insérés dans les lignes longues sont indiqués par une barre oblique inverse (\).

$ command -x -y
sortie ligne 1
sortie ligne 2
sortie ligne 3 est très longue, si bien \ 
  que nous devons insérer un retour 
sortie ligne 4
[...]
sortie ligne 98 
sortie ligne 99

Les descriptions sont très courtes pour permettre de citer autant d'utilitaires que possible. Des informations complémentaires sur toutes les commandes sont accessibles dans les pages de manuel. En outre, presque toutes les commandes acceptent le paramètre --help, qui génère une courte liste des paramètres possibles.

25.1. Liste des fichiers ouverts : lsof

Pour afficher la liste de tous les fichiers ouverts au cours du processus dont l'ID est PID, utilisez -p. Par exemple, pour afficher tous les fichiers utilisés par le shell actuel, entrez :

$ 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 de shell spéciale $$, dont la valeur correspond à l'ID de processus du shell, a été utilisée.

La commande lsof répertorie tous les fichiers actuellement ouverts lorsqu'elle est utilisée sans aucun paramètre. Comme il y a souvent des milliers de fichiers ouverts, il est rarement utile de tous les répertorier. Cependant, il est possible de combiner la liste de tous les fichiers avec des fonctions de recherche, afin de générer des listes utiles. Par exemple, vous pouvez répertorier tous les périphériques en mode caractères 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