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 Prochaine révision Les deux révisions suivantes | ||
doc:systeme:lsof [28/06/2013 19:52] Switch [lsof - lister les fichiers ouverts] |
doc:systeme:lsof [05/03/2014 12:27] paskal [Liens] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== lsof - lister les fichiers ouverts ====== | ====== lsof - lister les fichiers ouverts ====== | ||
- | * Objet : commande listant les fichiers ouverts ainsi que leurs programmes ou utilisateurs liés. Très pratique pour résoudre des problèmes. | + | * 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}} | ||
- | * Commentaires : //Contexte d'utilisation du sujet du tuto. // | + | * 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>en-chantier à-tester}} |
* Création par **Switch** 28/06/2013 | * Création par **Switch** 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> | <note>article en cours de rédaction </note> | ||
Ligne 20: | Ligne 20: | ||
===== Installation ===== | ===== Installation ===== | ||
- | lsof est installé par défaut. | + | <code root>apt-get install lsof</code>. |
===== Utilisation ===== | ===== Utilisation ===== | ||
- | * liste tous les fichiers ouverts appartenant aux processus actifs: | + | ==== Options de lsof : ==== |
+ | <code> | ||
+ | lsof --help | ||
+ | </code> | ||
+ | affiche un bref résumé des options: | ||
+ | <code> | ||
+ | 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. | ||
+ | </code> | ||
+ | Manuel complet : | ||
+ | |||
+ | <code> | ||
+ | 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> | <code> | ||
$ lsof | $ lsof | ||
- | 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 8,2 4096 2 / | + | init 1 root cwd DIR 254,0 4096 2 / |
+ | init 1 root rtd DIR 254,0 4096 2 / | ||
+ | init 1 root txt REG 254,0 35216 4522 /sbin/init | ||
[...] | [...] | ||
+ | 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 | ||
</code> | </code> | ||
- | * Pour lister tous les fichiers ouverts sur le périphérique /dev/hd4, utilisez : | + | 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> | ||
+ | lsof -u toto | ||
+ | </code> | ||
+ | |||
+ | === Savoir qui utilise les fichiers d'un répertoire === | ||
+ | <code> | ||
+ | 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> | <code> | ||
lsof /dev/hd4 | lsof /dev/hd4 | ||
</code> | </code> | ||
+ | |||
+ | ===Trouver la liste des fichiers ouverts par un processus :=== | ||
+ | |||
+ | <code> | ||
+ | lsof -p PID | ||
+ | </code> | ||
+ | |||
+ | === Afficher la liste de toutes les connexions réseaux : === | ||
+ | <code> | ||
+ | lsof -i | ||
+ | </code> | ||
+ | |||
+ | ===Trouver le processus qui écoute sur le port 80 :=== | ||
+ | <code> | ||
+ | sudo lsof -nP -i tcp:80 | grep LISTEN | ||
+ | </code> | ||
+ | |||
+ | |||
+ | <code> | ||
+ | |||
+ | </code> | ||
+ | |||
- | ===== 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]] |