
Примеры использования команды Lsof
lsof (от англ. LiSt of Open Files) — утилита, которая предназначена для вывода информации о том, какие файлы используются теми или иными процессами. Эта программа имеется в очень многих UNIX ‐ подобных ОС включая GNU/Linux с ядром версии 2.1.72 и выше, а также в HP-UX, AIX, NextStep, Apple Darwin для Power Macintosh, SCO UnixWare, FreeBSD, NetBSD, OpenBSD и так далее.
В этом уроке показать практические примеры использования Lsof команды.
Установка Lsof в RHEL, CentOS и Fedora Linux:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Установка Lsof в Debian, Ubuntu и Mint Linux:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
или
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Установка Lsof в freeBSD:
или
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Опции.
default : : без вариантов, Lsof выведет список всех открытых файлов для всех процессов.
grouping : это возможно группирования параметров, например -abC, но вы должны следить какие опции принимают параметры.
-a : «И» результаты (вместо «ИЛИ»).
—l : показать идентификатор пользователя (userID) вместо имени пользователя на выходе.
—h : Вывести помощь (help).
—t : Получить ID процесса (ов) только.
—U : Получить адрес сокета UNIX.
-F : вывод готов для другой команде, которую можно отформатировать различными способами, например,-F pcfn (идентификатор процесса, название команды, дескриптор файла, имя файла, с нулевого символа)
Базовые примеры lsof команды
Набрав команду Lsof он выведет список всех открытых файлов, принадлежащих всех активных процессах в системе:
Пример вывода:
<img aria-describedby=»caption-attachment-965″ loading=»lazy» class=»size-full wp-image-965″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof.png» alt=»lsof» width=»678″ height=»584″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof.png 678w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-300×258.png 300w» sizes=»(max-width: 678px) 100vw, 678px» />
lsof
По умолчанию отображается один файл в каждой строке. Большинство колонн говорят сами за себя. Мы объясним подробности о нескольких загадочных столбцов (FD и TYPE(тип)).
FD — Представляет дескриптор файла. Некоторые из значений FD являются.
cwd — текущий рабочий каталог.
TXT — текстовый файл.
mem — Память отображаемого файла.
mmap — Память отображаемого устройства.
NUMBER — представить фактический дескриптор файла. Символ после числа, представляет собой режим в котором открывается файл.
r- для чтения, w- для записи, u- для чтения и записи.
TYPE (ТИП) — Указывает тип файла. Некоторые из значений типов,
REG — обычный файл
DIR — Справочник
FIFO — First In First Out
CHR — Поведение специального файла
Или посмотрите полный список FD& TYPE в мануале Lsof.
Список процессов, которые открыли конкретный файл
Вы можете перечислить только процессы, которые открыли конкретный файл, предоставляя имя файла в качестве аргументов. (например введем в терминале команду: # lsof /var/log/apache2/ access.log), получим в ответ:
<img aria-describedby=»caption-attachment-967″ loading=»lazy» class=»size-full wp-image-967″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof-s-parametrom.png» alt=»lsof с параметром» width=»635″ height=»197″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof-s-parametrom.png 635w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-s-parametrom-300×93.png 300w» sizes=»(max-width: 635px) 100vw, 635px» />
lsof с параметром
Показать Все процессы открытых файлов в каталоге
флаги +D /var/log будет информировать Lsof найти все связанные процессы, работающие с файлами под /var/log:
<img aria-describedby=»caption-attachment-968″ loading=»lazy» class=»size-full wp-image-968″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof3.png» alt=»lsof» width=»847″ height=»624″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof3.png 847w, https://linux-notes.org/wp-content/uploads/2014/03/lsof3-300×221.png 300w» sizes=»(max-width: 847px) 100vw, 847px» />
lsof
Показать все файлы, открытые процессы, начинающиеся с буквы
Для отображения всех файлов, открытых процессов, начинающихся с буквы «C» выполнить Lsof -c b для процессов, начиная с «b».
<img aria-describedby=»caption-attachment-972″ loading=»lazy» class=»size-full wp-image-972″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof-c-b.png» alt=»lsof -c b» width=»807″ height=»273″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof-c-b.png 807w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-c-b-300×101.png 300w» sizes=»(max-width: 807px) 100vw, 807px» />
lsof -c b
Вывести все файлы, открытые с помощью конкретной команды:
Дисплей, который обращается к устройству
Для отображения кто получает доступ устройства, каталога или двоичный файлов. В данном случае я с изложением кто обращается к области памяти.
<img aria-describedby=»caption-attachment-973″ loading=»lazy» class=»size-full wp-image-973″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof2.png» alt=»lsof /var/log/apache2″ width=»602″ height=»177″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof2.png 602w, https://linux-notes.org/wp-content/uploads/2014/03/lsof2-300×88.png 300w» sizes=»(max-width: 602px) 100vw, 602px» />
lsof /var/log/apache2
Список файлов, открытых определенным пользователем
Для того чтобы найти список файлов, открытых определенных пользователей, использовать опцию ‘-U’.
<img aria-describedby=»caption-attachment-974″ loading=»lazy» class=»size-full wp-image-974″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof-u-root.png» alt=»lsof -u root» width=»915″ height=»626″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof-u-root.png 915w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-u-root-300×205.png 300w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-u-root-900×615.png 900w» sizes=»(max-width: 915px) 100vw, 915px» />
lsof -u root
Show what all users are doing except a certain user using -u ^user
Убить все данный пользователя
Вы можете убить все процессы которые держат открытые файлы по конкретному пользователю:
Перечислите все сетевые соединения
Вы можете перечислить все сетевые подключения, открытые с помощью ‘-I’ вариант.
<img aria-describedby=»caption-attachment-975″ loading=»lazy» class=»size-full wp-image-975″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof-i.png» alt=»lsof -i» width=»981″ height=»259″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof-i.png 981w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-i-300×79.png 300w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-i-900×237.png 900w» sizes=»(max-width: 981px) 100vw, 981px» />
lsof -i
Получить только траффик сIPv6 с опцией -i 6
Показать только соединения TCP (работает то же самое и для UDP), вы можете также показать только TCP или UDP соединения, предоставляя протокол сразу после -i:
или
Показать сети, связанный с данным портом с помощью -i: порт:
Показать соединения к определенному хосту с помощью «host». Это очень полезно, когда вы ищете, есть ли у вас открытые соединения с данного хоста в сети или по интернету.
Показать соединения к определенному хосту с помощью @host:port. Вы также можете комбинировать отображение хост и порт:
Найти прослушивающие порты, которые ждут соединения:
Вы также можете отсеять не нужно и вывести например, только «LISTEN»:
Найти установленные соединения. Вы можете также показать любые соединения, которые уже установлены на сервере:
Вы можете отгрепать мусор и найти что-то для себя, например:
Перечислите все открытые файлы по конкретному процессу
Вы можете перечислить все файлы, открытые конкретного процесса с использованием опции ‘-P’. Это будет полезно иногда, чтобы получить больше информации о конкретном процессе.
<img aria-describedby=»caption-attachment-976″ loading=»lazy» class=»size-full wp-image-976″ src=»http://linux-notes.org/wp-content/uploads/2014/03/lsof-p.png» alt=»lsof -p 8546″ width=»809″ height=»273″ srcset=»https://linux-notes.org/wp-content/uploads/2014/03/lsof-p.png 809w, https://linux-notes.org/wp-content/uploads/2014/03/lsof-p-300×101.png 300w» sizes=»(max-width: 809px) 100vw, 809px» />
lsof -p 8546
Показать приложения, которые используют подключение к интернету в данный момент:
Показать PID с опцией -t.
Показать PIDможно с опцией -t:
Использование опций -t и -c вместе, чтобы выполнить HUP для процессов:
Lsof + L1 показывает все открытые файлы, имеющие ссылки ( менее чем 1):
Показать открытых соединений с диапазоном портов:
Для получения дополнительной использования выполните команду:
Показать приложения, которые используют подключение к интернету в данный момент.
На этом я завершу данную тему «Примеры использования команды Lsof «.