L’outil lsof sous Linux vous permet de contrôler votre système et de détecter plus ra­pi­de­ment les éventuels problèmes. Le programme recense pour cela les fichiers ouverts et peut être optimisé selon vos objectifs à l’aide de filtres et d’options.

Qu’est-ce que Linux lsof ?

Sous Linux, lorsque vous souhaitez contrôler et analyser votre système, la commande lsof s’avère être un outil très facile à utiliser. Développé et publié dès 1994 par Vic Abell, ce programme en open source fait partie, par défaut, de nom­breuses dis­tri­bu­tions Linux, comme Debian ou Ubuntu. lsof signifie « List open files », soit « recenser les fichiers ouverts ». Le programme fournit des in­for­ma­tions relatives aux types de fichiers qui sont ou ont été ouverts à un moment donné par les processus en cours.

Outre les fichiers or­di­naires, l’outil peut également traiter des ré­per­toires, des prises, des lecteurs ou des ports. Les dif­fé­rents processus et fichiers sont ensuite clai­re­ment recensés.

Comment fonc­tionne la commande lsof ?

Si la commande lsof n’existe pas sur votre système, installez-la fa­ci­le­ment à l’aide de cette commande Linux :

$ apt-get install lsof
bash

Vous pouvez à présent utiliser l’outil pour obtenir une vue d’ensemble des processus de travail sur votre or­di­na­teur. Cette fonction s’appuie sur le fait que, sous les systèmes Unix, tout est nor­ma­le­ment visible sous forme de fichier. La commande lsof vous permet donc de vérifier quels processus ont accès à un fichier donné.

Quelle est la syntaxe de la commande lsof ?

Vous souhaitez utiliser lsof ? Voici la syntaxe élé­men­taire de la commande cor­res­pon­dante :

$ lsof [Option] <Format>
bash

Vous pouvez certes utiliser lsof sans aucune option ni aucun filtre, mais l’affichage des résultats sub­sé­quent serait toutefois ex­trê­me­ment vo­lu­mi­neux et confus. Cette approche n’est donc pas re­com­man­dée.

Quels sont les filtres et options de Linux lsof ?

La commande lsof possède de nom­breuses options d’affichage des résultats. Voici les prin­ci­pales :

  • -F : cette option veille à ce que tous les résultats ap­pa­rais­sent dans une seule colonne.
  • -l : cette option vous permet d’afficher l’ID de l’uti­li­sa­teur au lieu de son nom.
  • -n : lorsque vous utilisez cette option, les adresses IP cor­res­pon­dantes sont affichées à la place des noms d’hôte.
  • -P : les noms de service sont remplacés par les numéros de port.
  • -r [x] : cette option veille à ce que l’affichage des résultats soit exécuté toutes les x secondes.
  • -t : avec cette option, une seule liste de PID (iden­ti­fiants de processus) est affichée.

La commande lsof dispose également de nom­breuses options de filtrage. Voici les prin­ci­pales :

  • -a : il s’agit d’une opération ET logique au lieu de l’opération OU qui est ha­bi­tuel­le­ment utilisée.
  • -c [Processus] : avec ce filtre, vous apprenez quels fichiers sont utilisés par quels processus.
  • +D /dossier/uti­li­sa­teur : ce filtre fournit des in­for­ma­tions à propos d’un ré­per­toire spé­ci­fique et de son uti­li­sa­teur.
  • /dev/lecteur : ce filtre vous permet de contrôler un lecteur spé­ci­fique.
  • -i [TCP/UDP ou autre port ou adresse IP] : vous recevez des in­for­ma­tions à propos de quels processus utilisent quels services réseaux.
  • +L1 : avec ce filtre, vous recevez des in­for­ma­tions à propos des fichiers déjà supprimés.
  • +p PID : ce filtre vous fournit des in­for­ma­tions à propos de quels fichiers sont utilisés par quels PID.
  • /chemin d’accès/fichier : avec cette option, vous recevez des in­for­ma­tions à propos d’un fichier spé­ci­fique.
  • -u [Uti­li­sa­teur] : vous découvrez quel uti­li­sa­teur utilise quels fichiers.

À quoi sert la commande Linux lsof ?

Pour terminer, nous vous pré­sen­tons à l’aide de quelques exemples comment et dans quel but utiliser la commande lsof.

$ lsof -u root
bash

Cet exemple vous permet d’afficher tous les fichiers que l’ad­mi­nis­tra­teur a ac­tuel­le­ment ouverts.

$ lsof /mount/path
bash

La commande lsof est souvent utilisée pour contrôler quels pro­grammes bloquent la commande mount. Elle ne peut pas être exécutée lorsque les fichiers sont encore ouverts.

$ lsof -n -i
bash

Cette commande vous permet de ré­per­to­rier tous les ports ac­tuel­le­ment ouverts.

Aller au menu principal