GNU/Linux >> Tutoriels Linux >  >> Linux

Comment afficher les descripteurs de fichiers ouverts sans utiliser la commande lsof

Il y a deux raisons lsof | wc -l ne compte pas les descripteurs de fichiers. La première est qu'il répertorie les éléments qui ne sont pas des fichiers ouverts, tels que les bibliothèques liées dynamiquement chargées et les répertoires de travail actuels. vous devez les filtrer. Une autre est que lsof prend un certain temps à s'exécuter, donc peut manquer des fichiers qui sont ouverts ou fermés pendant son exécution ; par conséquent, le nombre de fichiers ouverts répertoriés est approximatif. En regardant /proc/sys/fs/file-nr vous donne une valeur exacte à un moment donné.

cat /proc/sys/fs/file-nr n'est utile que lorsque vous avez besoin du chiffre exact, principalement pour vérifier l'épuisement des ressources. Si vous voulez lister les fichiers ouverts, vous devez appeler lsof , ou utiliser une méthode équivalente telle que le chalutage /proc/*/fd manuellement.


Les informations de processus sont conservées dynamiquement par le système dans des répertoires sous /proc. Par exemple, le processus avec le PID 1234 aura un répertoire appelé /proc/1234.

Il y a pas mal d'informations dedans mais en ce moment vous êtes intéressé par le /proc/1234/fd sous-répertoire.

REMARQUE :Vous devez disposer des autorisations root pour afficher ou ouvrir les fichiers des processus qui ne vous appartiennent pas, ainsi que pour les processus SetUID.

Exemple :

[email protected]:/proc# ls -l 2443/fd
total 0
lr-x------ 1 johan johan 64 Feb 27 10:26 0 -> pipe:[13637]
l-wx------ 1 johan johan 64 Feb 27 10:26 1 -> /home/johan/.xsession-errors
lrwx------ 1 johan johan 64 Feb 27 10:26 10 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 11 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 12 -> socket:[39495]
lrwx------ 1 johan johan 64 Feb 27 10:26 13 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 14 -> anon_inode:inotify
lrwx------ 1 johan johan 64 Feb 27 10:26 15 -> anon_inode:[eventfd]
l-wx------ 1 johan johan 64 Feb 27 10:26 16 -> pipe:[37885]
lr-x------ 1 johan johan 64 Feb 27 10:26 17 -> pipe:[37886]
l-wx------ 1 johan johan 64 Feb 27 10:26 2 -> /home/johan/.xsession-errors
l-wx------ 1 johan johan 64 Feb 27 10:26 21 -> pipe:[167984]
lr-x------ 1 johan johan 64 Feb 27 10:26 22 -> pipe:[167985]
l-wx------ 1 johan johan 64 Feb 27 10:26 23 -> pipe:[170009]
lr-x------ 1 johan johan 64 Feb 27 10:26 24 -> pipe:[170010]
lrwx------ 1 johan johan 64 Feb 27 10:26 3 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 4 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 5 -> socket:[14721]
l-wx------ 1 johan johan 64 Feb 27 10:26 6 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 7 -> socket:[14730]
lrwx------ 1 johan johan 64 Feb 27 10:26 8 -> socket:[13984]
lrwx------ 1 johan johan 64 Feb 27 10:26 9 -> socket:[14767]

[email protected]:/proc# cat 2443/fdinfo/2
pos:    1244446
flags:  0102001

Jetez également un coup d'œil au reste des fichiers sous /proc ... de nombreuses informations utiles sur le système se trouvent ici.


Linux
  1. Comment diviser un iso ou un fichier à l'aide de la commande 'split' sous Linux

  2. Comment créer des fichiers fragmentés sous Linux à l'aide de la commande "dd"

  3. fichier :commande introuvable

  4. Comment puis-je demander un fichier mais ne pas l'enregistrer avec Wget ?

  5. Comment récupérer un fichier ouvert mais supprimé sous Linux en utilisant ln au lieu de cp ?

Comment décompresser (ouvrir) le fichier Gz

Comment créer un lien symbolique sous Linux à l'aide de la commande Ln

Comment ouvrir un fichier sous Linux

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment utiliser la commande lsof sous Linux