Руководство по выживанию
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.