guide de survie lsof [fermé]

104

lsof est un utilitaire de ligne de commande incroyablement puissant pour les systèmes Unix. Il répertorie les fichiers ouverts et affiche des informations à leur sujet. Et comme presque tout est un fichier sur les systèmes Unix, lsof peut fournir aux administrateurs système une tonne de données de diagnostic utiles.

Quels sont les moyens les plus courants et les plus utiles d'utiliser lsof, et quels commutateurs de ligne de commande sont utilisés pour cela?

Hans Sjunnesson
la source

Réponses:

119

Pour afficher tous les réseaux liés à un élément donné port:

lsof -iTCP -i :port
lsof -i :22

Pour afficher les connexions à un hôte spécifique, utilisez @host

lsof [email protected]

Afficher les connexions basées sur l'hôte et le port en utilisant @host:port lsof [email protected]: 22

grepping for LISTENmontre sur quels ports votre système attend les connexions:

lsof -i| grep LISTEN

Montrez ce qu'un utilisateur donné a ouvert en utilisant -u:

lsof -u daniel

Voir quels fichiers et connexions réseau une commande utilise avec -c

lsof -c syslog-ng

Le -pcommutateur vous permet de voir ce qu'un ID de processus donné a ouvert, ce qui est bon pour en savoir plus sur les processus inconnus:

lsof -p 10075

L' -toption renvoie juste unPID

lsof -t -c Mail

En utilisant les options -tet -censemble, vous pouvez HUPtraiter

kill -HUP $(lsof -t -c sshd)

Vous pouvez également utiliser -tavec -upour tuer tout ce qu'un utilisateur a ouvert

kill -9 $(lsof -t -u daniel)
Kevin
la source
Source: danielmiessler.com/study/lsof
Uphill_ What '1
Un bon moyen est d'utiliser la gemme de triche, si vous utilisez Ruby. Il s'agit simplement d'une interface de ligne de commande pratique et communautaire pour les feuilles de triche de nombreux utilitaires (indépendamment de la langue). Donnez - lui un essai .
Kedar Mhaswade
25
lsof -i :port 

vous dira quels programmes écoutent sur un port spécifique.

Dvorak
la source
1
Ce n'est pas limité à "écouter", donc si vous spécifiez lsof -i :8080et que vous avez un tas de processus se connectant à un proxy sur le port 8080, vous les obtiendrez aussi.
Matt Byrne
14
lsof +D /some/directory

Affiche récursivement tous les fichiers ouverts dans un répertoire. + d pour juste le niveau supérieur.

Ceci est utile lorsque vous avez un% d'attente élevé pour les E / S, corrélé à l'utilisation sur un FS particulier et que vous voulez voir quels processus mâchent votre io.

sieste
la source
13

lsof -ifournira une liste des sockets réseau ouverts. L' -noption empêchera les recherches DNS, ce qui est utile lorsque votre connexion réseau est lente ou peu fiable.

John Millikin
la source
5
lsof -isera seulement vous montrer les sockets que vous avez accès à votre espace de noms (et qui sont considérés comme « prises Internet » par l' introspection, pas seulement une sorte de prise réseau). Sinon, les poignées de type «chaussette» n'apparaîtront pas dans la liste.
Nick Bastin
13

Découvrez les fichiers ouverts par une application ou un démon en cours d'exécution:

lsof -p pid

pid est l'ID de processus de l'application ou du démon.

Chris
la source
10
lsof +f -- /mountpoint

répertorie les processus utilisant des fichiers sur le montage monté sur / mountpoint. Particulièrement utile pour trouver le ou les processus utilisant une clé USB ou un CD / DVD monté.

mas
la source