1

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

Например, lsof -u postgres | wc - перечислил бы их только для пользователя postgres, но я хочу увидеть, на каком пользователе я могу потерять обработчики.

Примечание: некоторые вопросы могут относиться к PID, а не к именам пользователей, но, тем не менее, я ищу один вкладыш.

2 ответа2

1

Если вы открыты для трубы, как насчет этого:

лсоф | perl -pe 's/\s\s+/ / g' | cut -d '' -f3 | grep -v ^ ПОЛЬЗОВАТЕЛЬ | сортировать | uniq -c | сортировать

Я проверял это на MacOS 10.10.2 (Yosemite), OEL 6.6 и Ubuntu 10.04.01.

1

Я запустил сценарий Уоррена Лавалли, и мне было трудно его интерпретировать.

Вместо этого я расширил оригинальный скрипт, чтобы пройти через всех пользователей, чтобы дать следующее:

for f in $(sed</etc/passwd 's/:.*$//g'); do ( echo -n $f ' '; lsof -u $f 2>/dev/null | wc -l ); done | grep -v ' 0$'

Это прекрасно работает на Ubuntu 14.04. Последний grep удаляет нулевые записи, так как у многих пользователей не будет активных процессов. Вы также можете добавить | sort -rnk 2 до конца команды для сортировки в порядке убывания количества файлов.

Вы должны быть в корневой оболочке, чтобы убедиться, что вы можете видеть файлы от всех пользователей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .