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