Commandes Linux

Commande Linux lsof

Commande Linux lsof
L'outil de commande "lsof" de Linux est l'un des nombreux outils intégrés très utiles pour consulter la "liste des fichiers ouverts". Oui, le terme « lsof » est l'abréviation de la tâche.

Il y a un certain nombre de processus en cours d'exécution dans le système tout le temps, accédant à différents fichiers du système. Ces fichiers peuvent être des fichiers de disque, des scripts, des sockets réseau, des périphériques, des canaux nommés et autres. En utilisant "lsof", il est possible d'effectuer beaucoup de choses, comme le débogage. Il est également très utile pour les administrateurs système de déterminer quels fichiers sont accessibles par quels processus. L'un des scénarios les plus utiles que j'ai trouvé est lorsque vous êtes sur le point de démonter un système de fichiers mais qu'il est toujours accessible.

Sans plus tarder, commençons par "lsof"! Je suppose que votre système UNIX/Linux actuel a déjà "lsof" installé.

Emplacement

qui lsof

Cela rapporte le chemin complet de la commande, dans ce cas, "lsof".

version « lsof »
lsof -v

Cela rapportera des informations détaillées sur la version de "lsof", y compris la date de construction du binaire, la version du compilateur, les drapeaux du compilateur et autres.

Utilisation de base de « lsof »

Exécuter "lsof" par lui-même.

lsof

Cela rapporte une GRANDE liste de tous les fichiers auxquels le système accède au moment de l'exécution de la commande.

Bien que tous les champs s'expliquent d'eux-mêmes, la plupart du temps se confondent avec les colonnes « FD » et « TYPE » et leurs valeurs. Vérifions-les.

FD : Abréviation de « File Descriptor ». Il donne les valeurs suivantes.

Vous remarquerez également d'autres valeurs dans la colonne, comme « 1u » suivi de u, r, w, etc. valeur. Qu'est-ce que ça veut dire?

TYPE : Décrit le type de fichier et son identification. Les valeurs sont les suivantes.

Fichiers ouverts spécifiques à l'utilisateur

Linux est une brillante plate-forme multi-utilisateurs. Plusieurs utilisateurs peuvent accéder au système en même temps et effectuer des opérations pour lesquelles ils sont autorisés.

Pour vérifier les fichiers auxquels un certain utilisateur accède, exécutez la commande suivante.

lsof -u

Cependant, pour vérifier les utilisateurs de rang supérieur, « lsof » aura besoin du privilège « superutilisateur ».

sudo lsof -u

Que diriez-vous de vérifier toutes les commandes et tous les fichiers auxquels un certain utilisateur accède? Exécutez le suivant.

lsof -i -u

Encore une fois, pour les utilisateurs de rang plus élevé, « lsof » aura besoin du privilège « superutilisateur ».

sudo lsof -i -u

Processus en cours d'exécution spécifiques au port

Pour connaître tous les processus qui utilisent actuellement un certain port, appelez "lsof" avec le drapeau "-i" suivi des informations sur le protocole et le port.

lsof -i<46><@hostname|host_address>
:

Par exemple, pour vérifier tous les programmes accédant actuellement au port 80 via le protocole TCP/IP, exécutez la commande suivante.

lsof -i TCP:80

Cette méthode peut également être utilisée pour afficher tous les processus qui utilisent des ports dans une certaine plage, par exemple, 1 à 1000. La structure de commande est similaire à avant avec un peu de magie au niveau du numéro de port.

lsof -i TCP:1-1000

Processus spécifiques au protocole

Voici 2 exemples montrant les processus qui utilisent actuellement les protocoles IPv4 et IPv6.

lsof -i 4

lsof -i 6

Lister les connexions réseau

La commande suivante rapportera toutes les connexions réseau du système actuel.

lsof -i

Hors avec ^

Oui, nous pouvons exclure un utilisateur, un port, un FD et d'autres spécifiques en utilisant le caractère "^". Tout ce que vous avez à faire est de l'utiliser avec prudence afin de ne pas gâcher toute la sortie.

Dans cet exemple, excluons tous les processus de l'utilisateur "root".

lsof -u^root

Il existe d'autres façons d'utiliser ce mécanisme d'exclusion avec "lsof", par exemple, avec les drapeaux comme "-c", "-d" etc. Tous les indicateurs ne prennent pas en charge ce mécanisme. C'est pourquoi je recommande d'essayer une démo avec cette méthode avec n'importe quel indicateur avant de l'implémenter dans certains scripts.

Recherche PID

Le PID est une propriété importante de tout processus en cours d'exécution sur le système. Il permet de localiser plus finement un certain processus. Le nom du processus n'est pas très utile dans de nombreuses situations car le même binaire peut créer des copies de lui-même et effectuer différentes tâches en parallèle.

Si vous ne savez pas comment obtenir le PID d'un processus, utilisez simplement "ps" pour répertorier tous les processus en cours et filtrez la sortie en utilisant "grep" avec le nom du processus et/ou des commandes.

ps -A

Maintenant, effectuez le filtrage en utilisant "grep".

ps-A | grep

Maintenant, vérifiez à quels fichiers accède le PID.

lsof -p

Liste des fichiers ouverts pour un appareil spécifique

La fonctionnalité de "lsof" ne se limite pas à ces fonctions. Vous pouvez également filtrer le résultat de « lsof » par appareil. À cette fin, la commande ressemblera à quelque chose comme ceci.

lsof

Cette commande est super utile pour découvrir tous les processus en cours avec leurs informations de propriétaire accédant à un système de fichiers particulier. Si vous rencontrez des problèmes pour démonter un système de fichiers, c'est la meilleure solution.

lsof

Lister les fichiers ouverts sous un répertoire

Semblable à l'exemple précédent, transmettez simplement le chemin du répertoire à "lsof" pour savoir si un processus y accède.

Remarque : « lsof » vérifiera le répertoire de manière récursive, cela peut donc prendre du temps.

=lsof +D

Bonus : mettre fin à toutes les activités de l'utilisateur

Soyez extrêmement prudent avec cette partie car elle peut simplement gâcher tout ce qu'un utilisateur fait. La commande suivante tuera tous les processus en cours d'un utilisateur.

sudo kill -9 'lsof -t -u Dernières pensées

Les fonctionnalités de "lsof" ne s'arrêtent pas là. Ceux mentionnés ici sont ceux dont nous aurons le plus besoin au quotidien. Il existe de nombreuses autres fonctionnalités de "lsof" qui peuvent s'avérer utiles (dans des cas spécifiques, bien sûr).

Pour toutes les fonctionnalités disponibles et leur utilisation, consultez les pages man et info de "lsof".

homme lsof

info lsof

lsof -?

Prendre plaisir!

Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...