[pastacode lang= »bash » manual= »lsof%20%7C%20grep%20-e%20%22%5B%5B%3Adigit%3A%5D%5D%5C%2Bw%22″ message= »Liste des processus entrain d’ecrire sur le disque dur » highlight= » » provider= »manual »/]
Étiquette : lsof
Lsof (List Open file) est une commande Unix/Linux qui permet de lister les fichiers actuellement ouverts sur le système.
Utilisation de commande lsof :
lsof /chemin/d'un/fichier (pour voir qui ou quoi ouvre actuellement le fichier)
lsof +D /chemin/répertoire/ (pour voir qui ou quoi ouvre actuellement les fichiers d'un répertoire )
lsof -i (tous services internet TCP/UDP)
lsof -i tcp (tous services TCP)
lsof -i udp (tous services UDP)
lsof -i tcp:80 (services TCP sur port 80)
lsof -i @192.168.2.10 (liaison internet de mon poste avec 192.168.2.10)
Afficher les fichiers ouverts par un processus (uid):
lsof -p 75014
Afficher les connexions internet ouvertes par un processus :
lsof -i -p 75014
Pour connaître tous les ports réseau ouvert par le processus qui a le pid 75014 (-a est interprété comme AND)
lsof -i -a -p 75014
La forme suivante de la commande permet de connaître tous les fichiers ouverts par l’utilisateur starmate:
lsof -u starmate
La même chose mais cette fois cela concerne tous les utilisateurs sauf starmate:
lsof -u ^starmate
L’option « -t » permet de retourner dans la sortie standard uniquement l’uid du/des processus ouvrant le/les fichier(s), il est simple par la suite de l’exploiter avec une petite boucle:
for i in `lsof -t -u starmate`; do kill -9 $i; done
Pour identifier les processus en cours d’exécution qui ont gardés ouvert des fichiers qui ont été supprimés:
lsof +L1
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 tuer tous les processus écoutant le port 80:
kill -9 $( lsof -i:80 -t )
Remplacez 80 par le numéro de port souhaitez.