Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:systeme:lsof [05/03/2014 12:27] paskal [Liens] |
doc:systeme:lsof [19/06/2023 22:05] (Version actuelle) lagrenouille [lsof - lister les fichiers ouverts] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : commande listant les fichiers ouverts ainsi que leurs programmes ou utilisateurs liés. lsof pour "list open files" | * Objet : commande listant les fichiers ouverts ainsi que leurs programmes ou utilisateurs liés. lsof pour "list open files" | ||
- | * Niveau requis : {{tag>débutant}} | + | * Niveau requis : {{tag>débutant avisé}} |
* Commentaires : Très pratique pour résoudre des problèmes. | * Commentaires : Très pratique pour résoudre des problèmes. | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-tester}} | + | * Suivi : {{tag>à-tester à-placer}} |
- | * Création par **Switch** 28/06/2013 | + | * Création par [[user>Switch]] le 28/06/2013 |
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
* Commentaires sur le forum : [[https://debian-facile.org/topic-7089-wiki-lsof-page-1.html | C'est ici.]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/topic-7089-wiki-lsof-page-1.html | C'est ici.]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 15: | Ligne 15: | ||
Or dans linux , "tout est fichier" ( périphériques, dossiers, ... et même les "sockets" des connexions réseau. | Or dans linux , "tout est fichier" ( périphériques, dossiers, ... et même les "sockets" des connexions réseau. | ||
Cet outil permet donc de facilement surveiller les activités d'un programme : qui l'utilise, quels fichiers utilise-t-il, utilise-t-il le réseau etc... | Cet outil permet donc de facilement surveiller les activités d'un programme : qui l'utilise, quels fichiers utilise-t-il, utilise-t-il le réseau etc... | ||
- | |||
- | <note>article en cours de rédaction </note> | ||
===== Installation ===== | ===== Installation ===== | ||
- | <code root>apt-get install lsof</code>. | + | <code root>apt-get update && apt-get install lsof</code>. |
===== Utilisation ===== | ===== Utilisation ===== | ||
==== Options de lsof : ==== | ==== Options de lsof : ==== | ||
- | <code> | + | <code user>lsof --help</code> |
- | lsof --help | + | |
- | </code> | + | |
affiche un bref résumé des options: | affiche un bref résumé des options: | ||
- | <code> | + | <file config retour de la commande> |
lsof 4.86 | lsof 4.86 | ||
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ | latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ | ||
Ligne 64: | Ligne 60: | ||
names select named files or files on named file systems | names select named files or files on named file systems | ||
Anyone can list all files; /dev warnings disabled; kernel ID check disabled. | Anyone can list all files; /dev warnings disabled; kernel ID check disabled. | ||
- | </code> | + | </file> |
Manuel complet : | Manuel complet : | ||
- | <code> | + | <code user>man lsof</code> |
- | man lsof | + | |
- | </code> | + | |
ou version française : [[http://www.delafond.org/traducmanfr/man/man8/lsof.8.html|ici]] | ou version française : [[http://www.delafond.org/traducmanfr/man/man8/lsof.8.html|ici]] | ||
Ligne 75: | Ligne 69: | ||
Appelé seule, lsof liste tous les fichiers ouverts appartenant à tous les processus actifs: | Appelé seule, lsof liste tous les fichiers ouverts appartenant à tous les processus actifs: | ||
- | <code> | + | <code user>lsof</code> |
- | $ lsof | + | <file config retour de la commande> |
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME | COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME | ||
init 1 root cwd DIR 254,0 4096 2 / | init 1 root cwd DIR 254,0 4096 2 / | ||
Ligne 86: | Ligne 80: | ||
lsof 3379 root rtd DIR 254,0 4096 2 / | lsof 3379 root rtd DIR 254,0 4096 2 / | ||
lsof 3379 root txt REG 254,0 161852 31033 /usr/bin/lsof | lsof 3379 root txt REG 254,0 161852 31033 /usr/bin/lsof | ||
- | </code> | + | </file> |
ou | ou | ||
Ligne 101: | Ligne 95: | ||
=== Fichier ouverts par l'utilisateur "toto" === | === Fichier ouverts par l'utilisateur "toto" === | ||
- | <code> | + | <code user>lsof -u toto</code> |
- | lsof -u toto | + | |
- | </code> | + | |
=== Savoir qui utilise les fichiers d'un répertoire === | === Savoir qui utilise les fichiers d'un répertoire === | ||
- | <code> | + | <code user>lsof +D /tmp </code> |
- | lsof +D /tmp | + | |
- | </code> | + | |
=== Pour lister tous les fichiers ouverts sur le périphérique /dev/hd4 === | === Pour lister tous les fichiers ouverts sur le périphérique /dev/hd4 === | ||
(pratique pour trouver le fichier encore ouvert sur une partition qui ne peut donc pas être démontée): | (pratique pour trouver le fichier encore ouvert sur une partition qui ne peut donc pas être démontée): | ||
- | <code> | + | <code user>lsof /dev/hd4</code> |
- | lsof /dev/hd4 | + | |
- | </code> | + | |
===Trouver la liste des fichiers ouverts par un processus :=== | ===Trouver la liste des fichiers ouverts par un processus :=== | ||
- | <code> | + | <code user>lsof -p PID</code> |
- | lsof -p PID | + | |
- | </code> | + | |
=== Afficher la liste de toutes les connexions réseaux : === | === Afficher la liste de toutes les connexions réseaux : === | ||
- | <code> | + | <code user>lsof -i</code> |
- | lsof -i | + | |
- | </code> | + | |
===Trouver le processus qui écoute sur le port 80 :=== | ===Trouver le processus qui écoute sur le port 80 :=== | ||
- | <code> | + | <code user>sudo lsof -nP -i tcp:80 | grep LISTEN</code> |
- | sudo lsof -nP -i tcp:80 | grep LISTEN | + | |
- | </code> | + | |
- | <code> | ||
- | </code> | ||
+ | ==== lsof pour repérer les processus fantômes qui mangent l'espace disque ! ==== | ||
+ | Dans un cas, ou votre disque dur se remplissait trop vite, vous avez rapidement supprimé "à la sauvage" des fichiers qui grossissaient ( ex : fichiers logs, comme .xession-errors ); mais étrangement, l'espace disque ne semble pas libéré ! Il faut vérifier si des processus ont gardé ouvert ces fichiers, qui ont été supprimés. Ces processus deviennent des processus fantômes. | ||
+ | <code root>lsof +L1</code> | ||
+ | <note>D'après le manuel : « +L1 » will select open files that have been unlinked</note> | ||
+ | Les processus qui n’ont pas libérés les fichiers supprimés sont identifiés avec l’argument (deleted) en fin de ligne. | ||
+ | Pour libérer de l’espace, il faut soit redémarrer le processus si c’est un démon ou le tuer. | ||
+ | Pour plus de détails : https://memo-linux.com/linux-gestion-des-processus-qui-ne-liberent-pas-de-lespace-disque/ | ||
Ligne 145: | Ligne 131: | ||
* [[http://www.delafond.org/traducmanfr/man/man8/lsof.8.html|Manuel de lsof (FR)]] | * [[http://www.delafond.org/traducmanfr/man/man8/lsof.8.html|Manuel de lsof (FR)]] | ||
* [[doc:systeme:infos-systeme | Obtenir des informations sur son système]] | * [[doc:systeme:infos-systeme | Obtenir des informations sur son système]] | ||
+ | * [[https://memo-linux.com/linux-gestion-des-processus-qui-ne-liberent-pas-de-lespace-disque/|Linux : gestion des processus, qui ne libèrent pas de l’espace disque]] |