Как указать количество открытых дескрипторов файлов по процессам для всех процессов в Unix?

Мне нужно перечислить каждый процесс и сколько дескрипторов файлов открыты для этого процесса, чтобы я мог понять, какие процессы содержат слишком много открытых файлов. Нет, мне не нужно количество открытых файлов только для одного процесса, как задавали другие вопросы. Мне нужно знать номер для каждого работающего процесса, желательно отсортированного в порядке убывания.

lsof не похоже, что он может это сделать. Есть ли какая-нибудь другая полезность или что-то, что может это сделать?

  • Почему lsof сообщает о большем количестве открытых файлов пользователя, чем то, что говорит ulimit?
  • В ли списках `lsof` есть несинхронизированные / отложенные записи?
  • fuser vs lsof для проверки используемых файлов
  • запустить lsof в неинтерактивном режиме
  • У кого есть другой конец этого гнездового гнезда unix?
  • количество ссылок удаленных файлов
  • Arch Linux - Cronie не работает, а nestat не выводит журналы?
  • Активность дискового диска FreeBSD 10
  • 2 Solutions collect form web for “Как указать количество открытых дескрипторов файлов по процессам для всех процессов в Unix?”

    Я бы сделал что-то вроде:

     sudo lsof -FKc | awk ' function process() { if (pid || tid) { print n, \ tid ? tid " (thread of " pid ": " pname")" : pid, \ name n = tid = 0 } } {value = substr($0, 2)} /^p/ { process() pid = value next } /^K/ { tid = value next } /^c/ { name = value if (!tid) pname = value next } /^f/ {n++} END {process()}' | sort -rn 

    Для количества открытых файлов и замените /^f/ на /^f[0-9]/ для числа дескрипторов открытых файлов .

    Это будет работать как минимум с Solaris и Linux и, вероятно, с большинством других ОС, поддерживающих файловую систему /proc :

     #!/bin/sh cd /proc echo " count pid" ls -d [1-9]*/fd/* 2>/dev/null | sed 's/\/fd.*$//' | uniq -c | sort -rn 

    Используйте -rg вместо -rg в Linux или других операционных системах, используя sort GNU.

    Interesting Posts

    транспонировать наборы из трех строк в столбцы

    Объединение нескольких файлов с одинаковым заголовком

    Полноэкранный терминал со сценарием в качестве экранной заставки под archLinux

    Какая цель служит толстой кишки?

    Linux Centos 6: перезапустить сетевую службу после потерянного пинга

    Не удается получить доступ к Desktop Manager после перехода на Kali Sana

    Пароль защищает программу без системных учетных записей

    Поддерживает ли Linux формат разделов ОС Mac?

    CentOS: какое влияние оказывает обновление ядра?

    Shellscript для печати дерева каталогов и содержимого файлов с хорошей презентацией

    Исключить ведущие нули на определенной записи

    Настройка часового пояса по всему миру для OpenIndiana Hipster?

    Перемещение файлов, измененных после определенной даты

    Не удается получить голанг, работающий над Fedora 19

    Внешний жесткий диск загружается только на одном компьютере

    Linux и Unix - лучшая ОС в мире.