Руководство по выживанию

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

Каковы некоторые из наиболее распространенных и полезных способов использования lsof и какие ключи командной строки используются для этого?

Ответ 1

Чтобы показать всю сеть, связанную с данным port:

lsof -iTCP -i :port
lsof -i :22

Чтобы показать подключения к определенному хосту, используйте @host

lsof [email protected]

Показывать соединения на основе хоста и порта с помощью @host:port  lsof [email protected]: 22

grep ping для LISTEN показывает, какие порты вашей системы ждут подключения:

lsof -i| grep LISTEN

Покажите, что открыл пользователь с помощью -u:

lsof -u daniel

Посмотрите, какие файлы и сетевые подключения используется командой -c

lsof -c syslog-ng

Переключатель -p позволяет вам узнать, какой идентификатор данного процесса открыт, что полезно для получения информации о неизвестных процессах:

lsof -p 10075

Опция -t возвращает только PID

lsof -t -c Mail

Используя параметры -t и -c, вы можете HUP обрабатывать

kill -HUP $(lsof -t -c sshd)

Вы также можете использовать -t с -u, чтобы убить все, что пользователь открыл.

kill -9 $(lsof -t -u daniel)

Ответ 2

lsof -i :port 

расскажет, какие программы прослушиваются на определенном порту.

Ответ 3

lsof -i предоставит список открытых сетевых сокетов. Опция -n предотвратит поиск DNS, что полезно, когда ваше сетевое соединение медленное или ненадежное.

Ответ 4

lsof +D /some/directory

Будет отображать рекурсивно все файлы, открытые в каталоге. + d только для верхнего уровня.

Это полезно, когда у вас есть высокий уровень ожидания для IO, коррелированный для использования в конкретной FS и вы хотите увидеть, какие процессы пережевывают ваш io.

Ответ 5

Посмотрите, какие файлы запускает запущенное приложение или демон:

lsof -p pid

Где pid - это идентификатор процесса приложения или демона.

Ответ 6

lsof +f -- /mountpoint

перечисляет процессы, используя файлы на монтировании, установленном на /mountpoint. Особенно полезно для определения того, какой процесс использует установленный USB-накопитель или CD/DVD.