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

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

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

6 ответов

Показать все сети, связанные с данным port:

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

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

lsof -i@192.168.1.5

Показать соединения на основе хоста и порта, используя @host:port lsof -i@192.168.1.5:22

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

lsof -i| grep LISTEN

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

lsof -u daniel

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

lsof -c syslog-ng

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

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)
lsof -i :port 

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

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

lsof +D /some/directory

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

Это полезно, когда у вас высокий процент ожидания ввода-вывода, связанный с использованием на конкретной ФС, и вы хотите увидеть, какие процессы поглощают ваш ввод-вывод.

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

lsof -p pid

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

lsof +f -- /mountpoint

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

Другие вопросы по тегам