logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:lsof [29/06/2013 05:03]
Switch [lsof - lister les fichiers ouverts]
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 =====
  
-lsof est une commande très utile pour retrouver quel utilisateur ou quel programme utilise ​quel fichiers.+lsof est une commande très utile pour retrouver quel utilisateur ou quel programme utilise ​quels fichiers.
 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 outils ​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 =====
  
-  * liste tous les fichiers ouverts appartenant ​aux processus actifs: +==== Options de lsof : ==== 
-<​code>​ +<code user>​lsof --help</​code>​ 
-lsof +affiche un bref résumé des options: 
-COMMAND ​   PID  TID       ​USER   ​FD ​     TYPE     ​DEVICE SIZE/​OFF ​      NODE NAME +<file config retour de la commande>​ 
-init         ​1 ​           root  cwd       ​DIR ​       8,2     ​4096 ​         2 /+lsof 4.86 
 + ​latest revision: ftp://​lsof.itap.purdue.edu/​pub/​tools/​unix/​lsof/​ 
 + ​latest FAQ: ftp://​lsof.itap.purdue.edu/​pub/​tools/​unix/​lsof/​FAQ 
 + ​latest man page: ftp://​lsof.itap.purdue.edu/​pub/​tools/​unix/​lsof/​lsof_man 
 + ​usage:​ [-?​abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s] 
 + [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s] 
 +[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names] 
 +Defaults in parentheses;​ comma-separated set (s) items; dash-separated ranges. 
 +  -?|-h list help          -a AND selections (OR)     -b avoid kernel blocks 
 +  -c c  cmd c ^c /​c/​[bix] ​ +c w  COMMAND width (9)    +d s  dir s files 
 +  -d s  select by FD set   ​+D D  dir D tree *SLOW?​* ​  +|-e s  exempt s *RISKY* 
 +  -i select IPv[46] files  -K list tasKs              -l list UID numbers 
 +  -n no host names         -N select NFS files        -o list file offset 
 +  -O no overhead *RISKY* ​  -P no port names           -R list paRent PID 
 +  -s list file size        -t terse listing ​          -T disable TCP/TPI info 
 +  -U select Unix socket ​   -v list version info       -V verbose search 
 +  +|-w  Warnings (+)       -X skip TCP&​UDP* files     -- end option scan 
 +  +f|-f  +filesystem or -file names     ​+|-f[gG] flaGs  
 +  -F [f] select fields; -F? for help   
 +  +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0) 
 +                                        +m [m] use|create mount supplement 
 +  +|-M   ​portMap registration (-)       -o o   o 0t offset digits (8) 
 +  -p s   ​exclude(^)|select PIDs         -S [t] t second stat timeout (15) 
 +  -T qs TCP/TPI Q,St (s) info 
 +  -g [s] exclude(^)|select and print process group IDs 
 +  -i i   ​select by IPv[46] address: [46][proto][@host|addr][:​svc_list|port_list] 
 +  +|-r [t[m<​fmt>​]] repeat every t seconds (15);  + until no files, - forever. 
 +       An optional suffix to t is m<​fmt>;​ m must separate t from <fmt> and 
 +      <fmt> is an strftime(3) format for the marker line. 
 +  -s p:s  exclude(^)|select protocol (p = TCP|UDP) states by name(s). 
 +  -u s   ​exclude(^)|select login|UID set s 
 +  -x [fl] cross over +d|+D File systems or symbolic Links 
 +  names  select named files or files on named file systems 
 +Anyone can list all files; /dev warnings disabled; kernel ID check disabled. 
 +</​file>​ 
 +Manuel complet : 
 + 
 +<code user>man lsof</​code>​ 
 +ou version française : [[http://​www.delafond.org/​traducmanfr/​man/​man8/​lsof.8.html|ici]] 
 + 
 +==== l'​affichage ==== 
 + 
 +Appelé seule, lsof liste tous les fichiers ouverts appartenant ​à tous les processus actifs: 
 +<​code ​user>lsof</​code>​ 
 +<file config retour de la commande>​ 
 +COMMAND ​   PID  TID        USER   ​FD ​     TYPE     ​DEVICE SIZE/​OFF ​      NODE NAME 
 +init         ​1 ​            ​root  cwd       ​DIR ​     254,0     ​4096 ​         ​
 +init         ​1 ​            ​root ​ rtd       ​DIR ​     254,0     4096          2 / 
 +init         ​1 ​            ​root ​ txt       ​REG ​     254,0    35216       4522 /sbin/init
 [...] [...]
-</​code>​+lsof      3378             ​root ​   6r     ​FIFO ​       0,8      0t0      12855 pipe 
 +lsof      3379             ​root ​ cwd       ​DIR ​     254,2     ​4096 ​    ​129537 /​home/​debi1 
 +lsof      3379             ​root ​ rtd       ​DIR ​     254,0     ​4096 ​         2 / 
 +lsof      3379             ​root ​ txt       ​REG ​     254,0   ​161852 ​     31033 /​usr/​bin/​lsof 
 +</​file>​ 
 + 
 +ou  
 +| affiché par lsof | correspond à | 
 +| COMMAND | le processus utilisant ce fichier | 
 +| PID | numéro identifiant du processus | 
 +| TID | numéro identifiant de la tâche | 
 +| USER | utilisateur | 
 +| FD | (File Descriptor) REG=fichier régulier , DIR=Dossier... | 
 +| NAME | nom du fichier ouvert | 
 + 
 +==== Exemples ==== 
 + 
 +=== Fichier ouverts par l'​utilisateur "​toto"​ === 
 + 
 +<code user>​lsof -u toto</​code>​ 
 + 
 +=== Savoir qui utilise les fichiers d'un répertoire === 
 +<code user>​lsof +D /tmp </​code>​ 
 + 
 + 
 +=== 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):​ 
 +<code user>​lsof /​dev/​hd4</​code>​ 
 + 
 +===Trouver la liste des fichiers ouverts par un processus :=== 
 + 
 +<code user>​lsof -p PID</​code>​ 
 + 
 +=== Afficher la liste de toutes les connexions réseaux : === 
 +<code user>​lsof -i</​code>​ 
 + 
 +===Trouver le processus qui écoute sur le port 80 :=== 
 +<code user>​sudo lsof -nP -i tcp:80 | grep LISTEN</​code>​ 
 + 
  
-  *  Pour lister tous les fichiers ouverts sur le périphérique /dev/hd4utilisez ​+==== lsof pour repérer ​les processus fantômes qui mangent l'​espace disque ! ==== 
-<​code>​ + Dans un casou 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. 
-lsof /dev/hd4 +<​code ​root>​lsof ​+L1</code> 
-</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]]
doc/systeme/lsof.1372475000.txt.gz · Dernière modification: 29/06/2013 05:03 par Switch

Pied de page des forums

Propulsé par FluxBB