linux что использует файл

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Нужно знать: утилита lsof в Linux

List Of Opened Files

В этой статье мы объясним, как узнать, кто использует тот или иной файл в Linux. Это поможет вам узнать системного пользователя или процесс, который использует открытый файл.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как узнать, кто использует файл в Linux?

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Мы можем использовать команду lsof (которая является аббревиатурой от List Of Opened Files), чтобы узнать, использует ли кто-то файл, и если да, то кто. Он читает память ядра в поиске открытых файлов и перечисляет все открытые файлы. В этом случае открытый файл может быть обычным файлом, каталогом, специальным файлом блока, специальным файлом символов, потоком, сетевым файлом и многими другими, поскольку в Linux все является файлом.

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

Список всех открытых файлов в Linux

Чтобы вывести список файлов, открытых для конкретного пользователя, выполните следующую команду: замените merionet вашим именем пользователя.

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

Процессы, прослушивающие порт:

Примечание: поскольку lsof читает память ядра при поиске открытых файлов, быстрые изменения в памяти ядра могут привести к непредсказуемым результатам. Это один из основных недостатков использования команды lsof.

Для получения дополнительной информации, смотрите справку lsof:

На этом все! В этой статье мы объяснили, как узнать, кто использует тот или иной файл в Linux.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Для чего служит команда lsof

Относительно lsof справка man как раз сообщает, что lsof есть сокращение от LiSt of Open Files, и что утилита эта служит для вывода информации о том, какие файлы используются теми или иными процессами. Причем утилита эта имеется в очень многих версиях и диалектах UNIX, включая Linux версии 2.1.72 и выше, а также в HP-UX, AIX, NextStep, Apple Darwin для Power Macintosh, SCO UnixWare, Solaris, FreeBSD, NetBDS, OpenBSD и так далее.

Создателем программа lsof является Victor A. Abell, его домашняя страничка расположена по адресу http://people.freebsd.org/

Если запустить эту утилиту без параметров, выдается информация о всех работающих процессах и открытых ими файлах. Даже в моей системе с одним пользователем эта команда выдала 2344 строки текста. Попробуй проанализируй эту массу информации! Но давайте взглянем хотя бы на несколько строк ее вывода, чтобы на этом примере понять, какую же информацию она выдает.

А теперь смотрим листинг 1 (или результат работы программы на вашем экране).

Листинг 1. Вывод команды lsof.

Номер файлового дескриптора сопровождается символом, указывающим режим, в котором файл был открыт:

В последнем случае за дефисом следует еще один символ, определяющий тип блокировки (подробнее смотри man lsof ).

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

Опции команды

выдаст данные о всех открытых UNIX-сокетах и всех файлах, принадлежащих процессам, запущенным пользователем “kos”.

будет выведен список файлов, принадлежащих ЛИБО пользователю “fff”, ЛИБО пользователю “ggg” И имеющих сетевые соединения ЛИБО к хосту aaa.bbb ЛИБО к хосту ccc.ddd.

Опции команды lsof можно записывать одну за другой без пробелов, предваряя это список всего одним дефисом, то есть вместо

можно указать просто

Однако при этом надо побеспокоиться о том, чтобы не было неоднозначности в интерпретации опций. Но я не буду детально рассматривать возможные причины неоднозначности, если у вас возникает желание использовать эту возможность, смотрите соответствующую man-страницу.

в выводе lsof будет присутствовать идентификатор процесса (p), имя команды (c), файловый дескриптор (f) и ися файла.

Применение команды lsof

Не имеет смысла повторять в статье описание всех опций этой команды, имеющееся на страничке man. Давайте ограничимся тем, что рассмотрим ее применение и использование наиболее употребительных опций на примерах конкретных ситуаций.

Пример 1. Кто работает с файлом или каталогом?

Начнем с решения той проблемы, которая была описана в начале статьи, и которая рассматривалась в упомянутой выше статье С.Лапшанского [2]. Итак, вы попытались размонтировать CD-ROM (захотели сменить диск). А в ответ получили сообщение “Device is busy”. Это означает, что какой-то процесс открыл файл, расположенный на этом устройстве. А чтобы узнать, какие файлы открыты в том или ином каталоге, служит опция +d команды lsof. Поэтому, чтобы узнать, кем занят диск, дайте команду следующего вида:

(у меня CD-ROM монтируется в каталог /mnt/cdrom). В ответ я получил такое сообщение:

Как видите, сразу становится ясно, что дисковод используется пользователем kos, причем, видимо, какой-то подкаталог каталога /mnt/cdrom открыт в одной из панелей файлового менеджера Mifnight Commander (mc).

Надо отметить, что при использовании опции +d dir выдается информация только о тех файлах и подкаталогах, которые содержатся в самом каталоге dir, а не в его подкаталогах. Для решения рассматриваемой проблемы этого вполне достаточно, потому что если обычно в выводе команды указан и файл данного каталога. Но, если вы все же захотите получить список всех открытых файлов во всех вложенных подкаталогах каталога dir, надо воспользоваться опцией +D. Попробуем, например, посмотреть, какие файлы открыты в каталоге /var/ и всех его подкаталогах. В работающей системе всегда найдутся открытые файлы из этого каталога, поэтому на этом примере очень наглядно демонстрируется разница между опциями +d и +D:

(Упомяну для точности, что символические ссылки игнорируются и поэтому в выводе этой команды не перечисляются.)

Пример 2. Какой процесс использует данный файл?

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

Пример 3. Какие ресурсы использует процесс?

Вы уже видели в листинге 1, что каждый процесс открывает несколько файлов. Но когда я выполнил команду

Пример 4. С какими файлами работает пользователь?

Следующий вариант запуска той же команды:

позволяет вывести список файлов, открытых всеми процессами, запущенными пользователями, чье имя или идентификатор содержится в списке names. Отдельные элементы списка разделяются запятыми, например, ”548,root” (пробелов быть не должно).

Пример 5. Кто подключился к вашему компьютеру?

На листинге 2 показан результат выполнения этой команды на компьютере trend в моей домашней сети, состоящей всего из двух компьютеров.

Порты, которые открыты для входящих соединений, обозначены меткой LISTEN. Метка ESTABLISHED показывает, что по данному порту соединение установлено. В листинге 2 вы можете видеть пример двух SSH-сессий. Первая сессия установлена хостом old-lin.home.kos с компьютером trend.home.kos. Она обслуживается процессом с PID 2192, который был порожден основным демоном sshd, PID 727. Процесс с PID 2464, наоборот, соответствует соединению, установленному клиентской программой ssh на компьютере trend.

Вместо “protocol” в параметре может стоять либо TCP, либо UDP (либо ничего).

Чтобы сказанное стало понятнее, приведем несколько простых примеров.

В этом случае будет выдан список всех процессов, прослушивающих или установивших соединение через порт 80.

В этом примере будут перечислены все соединения, ассоциированные с почтовым протоколом SMTP.

В третьем случае будет выдан список всех входящих и исходящих соединений с хостом rus-linux.net.

Эта команда покажет, какие процессы установили UDP-соединения с хостом rus-linux.net через порт 123 (ntp).

Очевидно, что указание параметра adress полезно только в том случае, когда вы заранее знаете, что именно вам нужно искать. Вы можете таким образом проверить, например, что какой-то конкретный сервис фактически работает и какой порт он прослушивает. Вы можете увидеть, подключился ли кто-то извне к вашему компьютеру по таким протоколам как SSH, Telnet, FTP или другим возможным способом.

Пример 6. Кто открыл файлы по NFS?

Пример 7. Наблюдаем за процессом копирования

Предположим, что вы решили переместить из одного каталога в другой большое количество файлов (или большой каталог целиком). И вы хотите видеть, какой именно файл перемещается в данный момент. Тут вам и может помочь утилита lsof. Для этого достаточно дать команду примерно такого вида (в этом примере предполагается, что перемещаются куда-то файлы из каталога Photo):

При этом нужно иметь в виду, что команда lsof делает как-бы “мгновенный снимок”, отображающий только лишь состояние процессов и соответствующих файлов в момент ее выполнения. Так что для “наблюдения за процессом” надо повторять ее запуск многократно. И в таком случае может оказаться полезной опция +r, которая служит для периодического повторения запуска команды через заданный промежуток времени.

Заключение

Мы рассмотрели только малую часть возможностей этой утилиты. Более подробную информацию ищите на соответствующей man-страничке.

Источник

Как в Linux найти, кто использует файл

Оригинал: How to Find Out Who is Using a File in Linux
Автор: Aaron Kili
Дата публикации: 29 марта 2019 г.
Перевод: В.Костромин
Дата перевода: 13 мая 2020 г.

В этой статье мы расскажем, как узнать, кто использует тот или иной файл в Linux. Это позволит вам найти системного пользователя или процесс, который использует открытый файл.

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

Список всех открытых в Linux файлов

Чтобы вывести список файлов, открытых для конкретного пользователя, выполните следующую команду:

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

Определение процесса, прослушивающего порт

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

За дополнительной информацией обращайтесь к странице руководства lsof man:

На этом все! В этой статье мы объяснили, как узнать, кто использует тот или иной файл в Linux. Мы показали, как определить владельца и информацию о процессах, использующих открытый файл.

Об авторе

Вы можете найти на нашем сайте более подробные статьи о команде lsof:

Источник

Как пользоваться lsof для просмотра открытых файлов (в Linux всё является файлами)

Если в Linux все является файлом, то в этой операционной системе должно быть нечто большее, чем просто файлы на вашем жёстком диске. Из этой обучающей статьи вы узнаете, как использовать lsof для просмотра всех других устройств и процессов, которые обрабатываются как файлы.

В Linux всё является файлами

Часто цитируемая фраза о том, что всё в Linux является файлом, является своего рода правдой. Файл представляет собой набор байтов. Программы и устройства (принтер, экран, клавиатура, мышь, терминал, сетевая карта) могут генерировать или принимать потоки байт, и в этом качестве они сами проявляются как файлы. Многие системные компоненты, такие как клавиатуры, сокеты, принтеры и коммуникационные процессы, принимают или генерируют потоки байтов. Поскольку они принимают, генерируют или принимают и генерируют потоки байтов, эти устройства могут обрабатываться — на очень низком уровне — как файлы. Кроме обычных файлов, файлами также являются директории (папки), сетевые сокеты (подключения по сети), устройства (диски, терминалы, клавиатура, мышь и прочее — это всё файлы), pipe (технология обмена данными между процессами).

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

Файлы данных и программ, которые находятся на вашем жёстком диске, являются обычными файлами файловой системы. Мы можем использовать команду ls, чтобы вывести их и узнать некоторые детали о них. Но как мы узнаем обо всех других процессах и устройствах, которые рассматриваются как файлы? Для этого используется команда lsof. Она выводит списки открытых файлов в системе. То есть она перечисляет всё, что обрабатывается, как если бы это был файл.

Команда lsof

lsof означает ‘LiSt Open Files’ (список открытых файлов). Эта программа используется чтобы узнать, какие файлы открыты и каким процессом.

Для чего нужно знать, какие файлы открыты? Эта информация поможет узнать о многом происходящем в системе, об устройстве и работе Linux, а также решить проблемы, например, когда вы не можете размонтировать диск из-за того, что устройство используется, но вы не можете найти, какой именно программой.

Многие процессы или устройства, о которых lsof может сообщать, принадлежат root или были запущены пользователем root, поэтому вам нужно будет использовать команду sudo с lsof.

И поскольку этот список будет очень длинным, то можно передать его команде less:

До появления вывода lsof, пользователи могут увидеть предупреждающее сообщение в окне терминала.

lsof пытается обработать все смонтированные файловые системы. Это предупреждающее сообщение появляется из-за того, что lsof обнаружил виртуальную файловую систему GNOME (GVFS). Это особый случай файловой системы в пространстве пользователя (FUSE). Он действует как мост между GNOME, его API и ядром. Никто, даже root, не может получить доступ к одной из этих файловых систем, кроме владельца, который её смонтировал (в данном случае, текущий пользователь). Вы можете игнорировать это предупреждение. Если же вы хотите получить доступ к данной файловой системе, то запустите lsof без sudo.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Значение столбцов lsof

Типов открытых файлов много, и далеко не все столбцы применимы к каждому из них. Поэтому если для каких-то файлов некоторые столбцы не заполнены данными, то это нормально.

Колонка FD

Дескриптор файла в столбце FD может быть одним из многих вариантов; на странице руководства они перечислены все:

Запись в столбце FD может состоять из трёх частей: дескриптор файла, символ режима и символ блокировки.

Некоторые популярные файловые дескрипторы:

Символ режима может быть одним из следующих:

Символ блокировки может быть одним из:

Колонка TYPE

В столбце TYPE может отображаться более 70 записей. Далее перечислены только некоторые из часто встречающихся записей:

Колонка NAME

В этом поле может быть:

Как видеть процессы, которые открыли файл

Чтобы увидеть процессы, открывшие определённый файл, укажите имя файла в качестве параметра для lsof. Например, чтобы увидеть процессы, которые открыли файл /dev/sda, используйте эту команду:

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как вы можете знать (а если не знаете, то смотрите статью «Структура директорий Linux. Важные файлы Linux»), файл /dev/sda является жёстким диском. Приведённая выше команда поможет найти процесс, который не даёт отмонтировать (отсоединить) диск.

Можно проверить, какой командой открыты обычные файлы, например:

Видно, что файл открыт пользователем mial, это обычный файл (REG) и что он открыт приложением soffice.b (на самом деле приложение soffice.bin, но его имя здесь не целиком).

Чтобы вывести полное имя, используйте опцию +c, например:

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Аналогично можно проверить, открыты (запущены) ли исполнимые файлы, например, для проверки, запущен ли файл /bin/bash:

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как посмотреть все файлы, открытые в определённом каталоге

Чтобы увидеть файлы, которые были открыты из каталога, и процессы, которые их открыли, передайте каталог в lsof в качестве параметра. Для этого используйте опцию +D КАТАЛОГ.

Чтобы увидеть все файлы, которые открыты в каталоге /var/log/, используйте эту команду:

lsof отвечает списком всех открытых файлов в этом каталоге.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Чтобы увидеть все файлы, которые были открыты из каталога /home, используйте следующую команду:

Файлы, которые были открыты из каталога /home. Обратите внимание, что в некоторых столбцах данные поместились не полностью.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как показать только обычные файлы

Чтобы показать обычные файлы и директории и исключить все другие виды файлов (устройства, сокеты и т. д.) выполните следующую команду:

Как увидеть файлы, которые открыты указанной программой или командой

В столбце COMMAND указано имя исполнимого файла, который открыл файл. Чтобы увидеть файлы, которые были открыты определенным процессом, используйте параметр -c КОМАНДА. Обратите внимание, что вы можете указать более одного поискового запроса для lsof одновременно.

lsof выведет список файлов, которые были открыты любым из процессов, представленных в командной строке.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как посмотреть файлы, открытые определённым пользователем

Чтобы ограничить отображение файлами, которые были открыты определенным пользователем, используйте параметр -u ПОЛЬЗОВАТЕЛЬ. В этом примере мы рассмотрим файлы, которые были открыты процессами, которые принадлежат или запускаются от имени mial.

Будут перечисленные все файлы, которые были открыты от имени пользователя mial. Они включают в себя файлы, которые были открыты, например, средой рабочего стола, или просто в результате входа mial.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как исключить файлы, открытые определённым пользователем

Чтобы исключить файлы, которые были открыты пользователем, используйте оператор ^. Исключение пользователей из списка облегчает поиск интересующей вас информации. Вы должны использовать опцию -u, как и раньше, и добавить символ ^ в начале имени пользователя.

Отрицание (поиск любых значений, кроме приведённых) можно применять с любыми опциями, для которых можно указать какое-либо значение, то есть с именами пользователей, именами команд, идентификаторами процессов, папками и т.д.

Например, чтобы показать все файлы, которые были открыты в директории /home, но которые открыты процессами, не принадлежащими пользователю mial:

Как найти файлы, которые открыты указанным процессом

Чтобы вывести список файлов, которые были открыты определенным процессом, используйте параметр -p ПРОЦЕСС и укажите идентификатор процесса в качестве параметра.

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

Как узнать идентификаторы процессов, которые открыли файл

Чтобы увидеть идентификаторы процессов, которые открыли конкретный файл, используйте параметр -t ФАЙЛ.

Идентификаторы процесса, открывших файл, отображаются в виде простого списка.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Как вывести размер открытых файлов

Для показа размера используйте опцию -s:

Для сортировки по размеру обычных файлов выполните следующую команду:

Как узнать какие процессы и сколько потребляют памяти в области Buff/Cache

Buffer/cache используются виртуальными файловыми системами, а также для оптимизации чтения/записи на диск, то есть файлы, которые уже были прочитаны с диска, размещены там для ускоренного доступа.

Следующая команда сортирует открытые файлы по размеру — именно они и занимают место в buffer/cache:

Buffer/cache потребляет не столько ядро, сколько всякие браузеры, офисные программы, графическое окружение, программы, имеющие большие логи и т. п. То есть все программы, которые открывают много файлов и/или большие файлы и держат их открытыми.

Как комбинировать условия поиска lsof (логические И и ИЛИ)

Давайте выведем файлы, которые были открыты пользователем mial и которые связаны с процессами systemd. Мы знаем, что можем предоставить более одного элемента поиска в командной строке, поэтому это должно быть легко.

Теперь давайте посмотрим на вывод lsof. Это не выглядит правильно; в выводе есть записи, которые были запущены пользователем root.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Это не то что мы ожидали. Что произошло?

Если вы предоставите несколько поисковых терминов, lsof вернёт любой файл, который соответствует первому поисковому запросу или второму поисковому запросу и так далее. Другими словами, она выполняет поиск ИЛИ.

Чтобы lsof выполняла поиск И, используйте опцию -a. Это означает, что будут перечислены только те файлы, которые соответствуют первому поисковому запросу, второму поисковому запросу и т. д.

Давайте попробуем это снова и используем опцию -a.

Теперь каждый файл в списке — это файл, который был открыт пользователем mial или от его имени и связан с systemd.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Обратите внимание, что два условия, одно из которых содержит отрицание (^) обрабатываются как логическое И:

Но если требуется логическое И, то лучше взять за правило всегда использовать опцию -a, поскольку так команда становиться более однозначной:

и в случае добавления третьего условия поиска она будет работать как ожидается:

Автоматическое обновление выводимой информации lsof

Чтобы перевести lsof в режим повтора, мы можем использовать опцию +r СЕКУНДЫ или её вариант -r СЕКУНДЫ. Опцию повторения можно применить двумя способами: +r или -r. Мы также должны добавить количество секунд, которое мы хотим, чтобы lsof ожидал перед обновлением дисплея.

Использование опции повтора в любом формате заставляет lsof отображать результаты как обычно, но добавляет пунктирную линию внизу экрана. Программа ожидает количество секунд, указанное в командной строке, а затем обновляет дисплей новым набором результатов.

С опцией -r это будет продолжаться пока вы не нажмете Ctrl+c. В формате +r программа будет продолжаться до тех пор, пока не будет получен пустой результат, или пока вы не нажмете Ctrl+c.

Обратите внимание на пунктирную линию (=======) внизу списка. Она отделяет каждое новое отображение данных при обновлении вывода.

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Отображение файлов, связанных с подключениями к Интернету

Опция -i позволяет просматривать файлы, открытые процессами, связанными с сетевыми и Интернет-соединениями.

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

linux что использует файл. Смотреть фото linux что использует файл. Смотреть картинку linux что использует файл. Картинка про linux что использует файл. Фото linux что использует файл

Если вы не хотите, чтобы цифровые обозначения портов заменялись на имена (например, http вместо 80), то добавьте опцию -P:

Отображение файлов, связанных с подключениями к Интернету, по идентификатору процесса

Чтобы увидеть файлы, открытые подключениями к Интернету, которые связаны с определенным идентификатором процесса, добавьте параметр -p PID и параметр -a.

Здесь мы ищем файлы, открытые через Интернет или сетевое соединение, с помощью процесса с идентификатором 606.

Отображение файлов, связанных с Интернет-подключениями и командами

Мы можем использовать опцию -c КОМАНДА для поиска файлов, открытых определёнными процессами. Чтобы найти файлы, которые были открыты через Интернет или сетевые подключения, связанные с процессом ssh, используйте следующую команду:

Отображение файлов, связанных с Интернет-подключениями и портами

Мы можем сделать lsof отчёт о файлах, которые были открыты через интернет или сетевые подключения на конкретном порту. Для этого мы используем символ «:», за которым следует номер порта.

Здесь мы просим lsof перечислить файлы, которые были открыты сетевым или Интернет-соединением с использованием порта 22.

Как показать сокеты только для определённого протокола

Мы можем попросить lsof показать файлы, которые были открыты процессами, связанными с сетевыми и Интернет-соединениями, которые используют определённый протокол. Мы можем выбрать из TCP, UDP и SMTP. Давайте использовать протокол TCP и посмотрим, что мы получим. Если вас интересуют только сетевые подключения на TCP протоколе или UDP протоколе, то вы можете использовать следующие команды:

Протоколы можно писать как прописными буквами, так и строчными:

Как узнать, какой процесс или служба прослушивают порт

Чтобы узнать, какая программа прослушивает определённый порт, выполните команду вида:

Например, чтобы увидеть процесс, который открыл 80й порт:

Если вы хотите проверить занятость порта на определённом протоколе (TCP или UDP), то укажите интересующий протокол перед номером порта:

Как просмотреть только IPv4 или IPv6 соединения

IPv6 — это шестая, новая версия протокола IP.

Чтобы вывести открытые файлы сетевых соединений только для IPv4 выполните команду:

Чтобы показать открытые файлы только типа IPv6 выполните:

Как просмотреть сетевые соединения в диапазоне портов

Если нужно увидеть все запущенные процессы, которые открыли файлы TCP портов в диапазоне 1-1024, то выполните команду:

Кроме диапазона портов через дефис, можно указать несколько портов или их диапазонов через запятую:

Как увидеть сетевые подключения определённого хоста

У каждого сетевого соединения есть исходный узел и пункт назначения, чтобы увидеть соединения, которые относятся только к определённому хосту, выполните команду вида:

Например, я хочу просмотреть только сетевые соединения для локального компьютера с именем HackWare, тогда команда следующая:

Если я хочу увидеть соединения с сайтом suip.biz, то команда такая:

В качестве хоста можно указывать не только имена сайтов или хостов, но и IP адрес.

Сочетание фильтров сетевых соединений

Можно использовать все фильтры сразу в команде вида:

Как остановить всю активность определённого пользователя

Поиск с использованием регулярных выражений программ, открывших файлы

В фильтрах lsof вы можете использовать регулярные выражения.

В следующем примере будут найдены все файлы, открытые процессом, имя которого состоит ровно из четырёх символов и третьим символом в имени является буква «o».

А этот пример найдёт все файлы, открытые процессом, имя которого состоит ровно из четырёх символов:

Основы команды lsof

Мы рассмотрели только самые популярные примеры использования команды lsof. Огромную документацию по этой программе с описанием всех опций вы найдёте в её справочной странице:

Источник

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

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