Bonjour, J'ai lu ici que lsof n'est pas un moyen précis d'obtenir le nombre de descripteurs de fichiers actuellement ouverts. Il a recommandé d'utiliser cette commande à la place
cat /proc/sys/fs/file-nr
Alors que cette commande affiche le nombre de FD, comment affichez-vous la liste des descripteurs de fichiers ouverts que la commande ci-dessus vient de comptabiliser?
linux
bash
command-line
dimas
la source
la source
Réponses:
Il y a deux raisons pour lesquelles
lsof | wc -l
les descripteurs de fichier ne sont pas pris en compte. 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 et les répertoires de travail en cours; vous devez les filtrer. Une autre est que celalsof
prend du temps à exécuter, donc peut rater 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. Regarder/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 souhaitez répertorier les fichiers ouverts, vous devez appelerlsof
ou utiliser une méthode équivalente, telle que le chalutage/proc/*/fd
manuellement.la source
/proc/*/fd
répertoires @dimas contiennent des liens symboliques vers les fichiers ouverts. Pour l'inspection visuelle, utilisezls -l
. Pour le traitement automatisé, utilisezreadlink
pour extraire la cible du lien.setrlimit
(l'appel système sous-jacent à laulimit
commande shell) sont définis par processus. Ils n'affectent que le processus qui effectue l'appel (et indirectement les processus qu'il demande plus tard).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 contient pas mal d’informations, mais pour l’instant, le sous-répertoire / proc / 1234 / fd vous intéresse .
REMARQUE: Vous devez disposer d'autorisations root pour afficher ou ouvrir des fichiers pour les processus que vous ne possédez pas, ainsi que pour les processus SetUID.
Exemple:
Jetez également un coup d'œil au reste des fichiers sous / proc ... vous trouverez ici de nombreuses informations utiles provenant du système.
la source