Примеры использования команды Lsof

Примеры использования команды 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:

# sudo yum install lsof -y

Установка Lsof в Debian, Ubuntu и Mint Linux:

# sudo apt-get install lsof -y

или

# sudo aptitude install lsof

Установка Lsof в freeBSD:

# pkg_add -r lsof

или

# cd /usr/ports/sysutils/lsof && make install clean

Опции.

default : : без вариантов, Lsof выведет список всех открытых файлов для всех процессов.
grouping : это возможно группирования параметров, например -abC, но вы должны следить какие опции принимают параметры.
-a : «И» результаты (вместо «ИЛИ»).
l : показать идентификатор пользователя (userID) вместо имени пользователя на выходе.
h : Вывести помощь (help).
t : Получить ID процесса (ов)  только.
U : Получить  адрес сокета UNIX.
-F : вывод готов для другой команде, которую можно отформатировать различными способами, например,-F pcfn (идентификатор процесса, название команды, дескриптор файла, имя файла, с нулевого символа)

Базовые примеры lsof команды

Набрав команду Lsof он выведет список всех открытых файлов, принадлежащих всех активных процессах в системе:

# Lsof

Пример вывода:

lsof

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), получим в ответ:

lsof с параметром

lsof с параметром

Показать Все процессы открытых файлов в каталоге

флаги +D /var/log будет информировать Lsof найти все связанные процессы, работающие с файлами под /var/log:

# lsof +D /var/log
lsof

lsof

Показать все файлы, открытые процессы, начинающиеся с буквы

Для отображения всех файлов, открытых процессов, начинающихся с буквы «C» выполнить Lsof -c b для процессов, начиная с «b».

# lsof -c b
lsof -c b

lsof -c b

Вывести все файлы, открытые с помощью конкретной команды:

# lsof -c httpd

 Дисплей, который обращается к устройству

Для отображения кто получает доступ устройства, каталога или двоичный файлов. В данном случае я с изложением кто обращается к области памяти.

# lsof /var/log/apache2
lsof /var/log/apache2

lsof /var/log/apache2

Список файлов, открытых определенным пользователем

Для того чтобы найти список файлов, открытых определенных пользователей, использовать опцию ‘-U’.

# lsof -u username
# lsof -u root
lsof -u root

lsof -u root

Show what all users are doing except a certain user using -u ^user

# lsof -u ^captain

Убить все данный пользователя

Вы можете убить все процессы  которые держат открытые файлы по конкретному пользователю:

# kill -9 `lsof -t -u captain`

Перечислите все сетевые соединения

Вы можете перечислить все сетевые подключения, открытые с помощью ‘-I’ вариант.

# lsof -i
lsof -i

lsof -i

Получить только  траффик сIPv6 с опцией -i 6

# lsof -i 6

Показать только соединения TCP (работает то же самое и для UDP), вы можете также показать только TCP или UDP соединения, предоставляя протокол сразу после -i:

# lsof -iTCP

или

# lsof -iUDP

Показать сети, связанный с данным портом с помощью -i: порт:

# lsof -i :21

Показать соединения к определенному хосту с помощью  «host». Это очень полезно, когда вы ищете, есть ли у вас открытые соединения с данного хоста в сети или по интернету.

# lsof -i@147.136.112.45

Показать соединения к определенному хосту с помощью @host:port. Вы также можете комбинировать отображение хост и порт:

# lsof -i@12.136.112.55:21

Найти прослушивающие порты, которые ждут соединения:

# lsof -i -sTCP:LISTEN

Вы также можете отсеять не нужно и вывести например, только «LISTEN»:

# lsof -i | grep -i LISTEN

Найти установленные соединения. Вы можете также показать любые соединения, которые уже установлены на сервере:

# lsof -i -sTCP:ESTABLISHED

Вы можете отгрепать мусор и найти что-то для себя, например:

# lsof -i | grep -i ESTABLISHED

Перечислите все открытые файлы по конкретному процессу

Вы можете перечислить все файлы, открытые конкретного процесса с использованием опции ‘-P’. Это будет полезно иногда, чтобы получить больше информации о конкретном процессе.

# lsof -p 8236
lsof -p 8546

lsof -p 8546

# lsof -p <id_process> | wc -l

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

# lsof -P -i -n | cut -f 1 -d " "| uniq | tail -n +2

Показать PID с опцией  -t.

Показать PIDможно  с опцией  -t:

# lsof -t -c Mail

Использование опций -t и -c вместе, чтобы выполнить HUP для процессов:

# kill -HUP `lsof -t -c sshd`

Lsof + L1 показывает все открытые файлы, имеющие ссылки ( менее чем 1):

# lsof +L1

Показать открытых соединений с диапазоном портов:

# lsof -i @linux-notes.org:1000=1234

Для получения дополнительной использования выполните команду:

# man lsof

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

# lsof -P -i -n | cut -f 1 -d " "| uniq | tail -n +2

UserEvent
Skype
SystemUIS
sharingd
com.apple
WiFiAgent
Google
Dropbox
joxi
VBoxHeadl
Google
Telegram
Last.fm

 

На этом я завершу данную тему «Примеры использования команды Lsof «.

One thought on “Примеры использования команды Lsof

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.