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 [30/06/2013 00:18] martinux_qc [Introduction] |
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 : [[manuel: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 à-placer}} | + | * 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 : [[http://debian-facile.org/viewtopic.php?pid=63559 | ]]((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 !)) |
===== Introduction ===== | ===== Introduction ===== | ||
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 ===== | ||
- | lsof est installé par défaut. | + | <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> |
- | Mauuel 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]] | ||
==== l'affichage ==== | ==== l'affichage ==== | ||
- | Appelé seule, lsof liste tous les fichiers ouverts appartenant aux processus actifs: | + | |
- | <code> | + | Appelé seule, lsof liste tous les fichiers ouverts appartenant à tous les processus actifs: |
- | $ lsof | + | <code user>lsof</code> |
+ | <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 85: | 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 91: | Ligne 86: | ||
| COMMAND | le processus utilisant ce fichier | | | COMMAND | le processus utilisant ce fichier | | ||
| PID | numéro identifiant du processus | | | PID | numéro identifiant du processus | | ||
- | | TID | | | + | | TID | numéro identifiant de la tâche | |
| USER | utilisateur | | | USER | utilisateur | | ||
| FD | (File Descriptor) REG=fichier régulier , DIR=Dossier... | | | FD | (File Descriptor) REG=fichier régulier , DIR=Dossier... | | ||
Ligne 100: | 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/ | ||
- | ===== Liens ===== | + | ===== Voir ===== |
- | [[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]] | ||
+ | * [[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]] |