Find all open files linux

Содержание
  1. Linux / UNIX List Open Files for Process
  2. UNIX List Open Files For Process
  3. FreeBSD list open files per process
  4. Linux List Open Files For Process
  5. Using lsof to display the processes using the most file handles
  6. Conclusion
  7. Вики IT-KB
  8. Инструменты пользователя
  9. Инструменты сайта
  10. Боковая панель
  11. Содержание
  12. Как проверить все открытые файлы пользователем или процессом в Linux
  13. Лимит ядра Linux
  14. Методика подсчёта открытых файлов
  15. Примеры получения данных
  16. How to use the Linux ‘lsof’ command to list open files
  17. lsof command background
  18. I assume you’re logged in as root
  19. Basic Linux lsof command examples
  20. Common lsof options
  21. Summary: Linux lsof command examples
  22. Как пользоваться lsof для просмотра открытых файлов (в Linux всё является файлами)
  23. В Linux все является файлом
  24. Команда lsof
  25. Значение столбцов lsof
  26. Колонка FD
  27. Колонка TYPE
  28. Как видеть процессы, которые открыли файл
  29. Как посмотреть все файлы, открытые в определённом каталоге
  30. Как показать только обычные файлы
  31. Как увидеть файлы, которые открыты указанной программой или командой
  32. Как посмотреть файлы, открытые определённым пользователем
  33. Как исключить файлы, открытые определённым пользователем
  34. Как найти файлы, которые открыты указанным процессом
  35. Как узнать идентификаторы процессов, которые открыли файл
  36. Как вывести размер открытых файлов
  37. Как увидеть какие процессы сколько занимают в области Buff/Cache
  38. Как комбинировать условия поиска lsof (логические И и ИЛИ)
  39. Автоматическое обновление выводимой информации lsof
  40. Отображение файлов, связанных с подключениями к Интернету
  41. Отображение файлов, связанных с подключениями к Интернету, по идентификатору процесса
  42. Отображение файлов, связанных с Интернет-подключениями и командами
  43. Отображение файлов, связанных с Интернет-подключениями и портами
  44. Как показать сокеты только для определённого протокола
  45. Как узнать, какой процесс или служба прослушивают порт
  46. Как просмотреть только IPv4 или IPv6 соединения
  47. Как увидеть сетевые подключения определённого хоста
  48. Сочетание фильтров сетевых соединений
  49. Как остановить всю активность определённого пользователя
  50. Поиск по регулярным выражениям программ, открывших файлы
  51. Основы команды lsof

Linux / UNIX List Open Files for Process

H ow do I list all open files for a Linux or UNIX process using command line options? How can I show open files per process under Linux?

Both Linux and Unix-like operating systems come with various utilities to find out open files associated with the process.

Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements None
Est. reading time 3 minutes

UNIX List Open Files For Process

First use the ps command command to get PID of process, enter:
$ ps -aef | grep $ ps -aef | grep httpd
Next pass this PID to pfiles command under Solaris Unix:
$ pfiles
$ pfiles 3533
See pfiles command documentation> for more information or type the following man command:
% man pfiles

FreeBSD list open files per process

On FreeBSD use the fstat command along with the ps command:
# ps aux | grep -i openvpn # filter outputs using the grep command #
# fstat -p
# fstat -p 1219
We can count open files count for openvpn process as follows using the wc command:
# fstat -p 1219 | grep -v ^USER | wc -l
The -p option passed to the fstat to report all files open by the specified process.

FreeBSD pstat command in action

Linux List Open Files For Process

First you need to find out PID of process. Simply use any one of the following command to obtain process id:
# ps aux | grep OR
$ ps -C -o pid=
For example, find out PID of firefox web-browser, enter:
$ ps -C firefox -o pid=
Output:

To list opne files for firefox process, enter:
$ ls -l /proc/7857/fd
Sample output:

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

For privileged process use the sudo command and to count open files use the wc command on Linux as follows:
# Get process pid
sudo ps -C Xorg -o pid
sudo ls -l /proc/$/fd
# Say pid is 9497 for Xorg, then
sudo ls -l /proc/9497/fd | wc -l
We can use bash for loop as follows too:

Listing Open Files on Linux

Using lsof to display the processes using the most file handles

The lsof command list open files under all Linux distributions or UNIX-like operating system. Type the following command to list open file for process ID 351:
$ lsof -p 351
In this example display and count all open files for top 10 processes on Linux operating systems or server:
# lsof | awk ‘‘ | sort | uniq -c | sort -r | head
## force numeric sort by passing the ‘-n’ option to the sort ##
# lsof | awk ‘‘ | sort | uniq -c | sort -r -n | head

  • lsof – Run the lsof to display all open files and send output to the awk
  • awk ‘ – Display first field i.e. process name only
  • uniq -c – Omit duplicate lines while prefix lines by the number of occurrences
  • sort -r – Reverse sort
  • head – Display top 10 process along with open files count

Conclusion

Now you know how to find open files per process on Linux, FreeBSD, and Unix-like systems using various command-line options. See how to increase the system-wide/user-wide number of available (open) file handles on Linux for more information.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки.

Инструменты пользователя

Инструменты сайта

Боковая панель

Содержание

Как проверить все открытые файлы пользователем или процессом в Linux

В некоторых ситуациях на Linux могут возникать ошибки, связанные с превышением лимита использования файловых дескрипторов. Эти лимиты накладываются как самим ядром Linux, так и его программными модулями, например PAM.

Лимит ядра Linux

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

Этот лимит может быть изменён без перезагрузки системы (начинает действовать сразу и действует до перезагрузки):

Чтобы требуемое значение использовалось постоянно, то есть действовало и после перезагрузки, его необходимо определить в конфиг.файле /etc/sysclt.conf :

Методика подсчёта открытых файлов

Для получения информации о количестве всех открытых файлов всеми процессами в Linux некоторые «знатоки» предлагают использовать команду типа

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

Поэтому проще для получения общего числа открытых файлов использовать данные ядра Linux

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

Примеры получения данных

Получить список TOP-20 процессов с самым большим количеством открытых файловых дескрипторов:

Подсчитать количество открытых файлов в разрезе процессов (в первой колонке будет выведен PID процесса, во второй количество открытых файлов этим процессом):

Посмотреть открытые файловые дескрипторы во всех процессах для отдельно взятого пользователя, например «apache»

Подсчитать количество открытых файлов в каждом процессе для отдельно взятого пользователя:

Тоже самое, только в реальном режиме времени:

Посмотреть открыте файловые дескриптры для отдельно взятого процесса (по PID процесса):

Подсчитать количество файловых дескриптров для отдельно взятого процесса:

Дополнительные источники информации:

Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux 8.10 (jessie)

Автор первичной редакции:
Алексей Максимов
Время публикации: 09.06.2018 11:18

Источник

How to use the Linux ‘lsof’ command to list open files

Linux “open files” FAQ: Can you share some examples of how to show open files on a Linux system (i.e., how to use the lsof command)?

lsof command background

The Linux lsof command lists information about files that are open by processes running on the system. The lsof command is an acronym for, “list of open files.” In this article I’ll share some lsof command examples.

I assume you’re logged in as root

One other note: In these examples I’ll assume that you’re logged in as the Unix/Linux root user. If not, you’re lsof command output may be significantly limited. If you’re logged in as a non-root user, either su to root, or use sudo to run these commands.

Basic Linux lsof command examples

Typing the lsof command by itself lists all open files belonging to all active processes on the system:

On my current macOS system, which has been running for a long time, this shows a lot of open files, 1,582 to be specific:

Note that I didn’t have to be logged in as the root user to see this information on my Mac system.

Adding the head command to lsof shows what some of this output looks like:

Common lsof options

As mentioned, these details go on for 1,582 lines, so it helps to have some way to weed through that output, whether that involves using the grep command, or some of the lsof options shown below.

This command lists all open files belonging to PID (process ID) 11925 :

This command lists all open files belonging to processes owned by the user named «al»:

This command lists files that are open in the directory specified, but it does not descend into sub-directories:

The next command lists files that are open in the directory specified, and also descends into sub-directories. Beware: this can take a very long time to run for large directory structures:

Summary: Linux lsof command examples

I hope these Linux lsof command examples have been helpful. As you can see, the lsof command can be used to generate a list of open files on your Unix and Linux system with a variety of different command line options for different circumstances.

For more information on the lsof command, please see the «Related» block on this page, follow this link to lsof command search results on this website, or leave a note in the Comments section below.

Источник

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

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

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

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

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

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

Команда lsof

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

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

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

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

sudo lsof | less

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

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

Шапка вывода lsof:

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

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

  • COMMAND: Имя команды, связанной с процессом, который открыл файл.
  • PID: Идентификационный номер процесса, который открыл файл.
  • TID: Идентификационный номер задачи (потока) . Пустой столбец означает, что это не задача; это процесс.
  • TASKCMD: это имя команды задачи. Обычно это будет то же самое, что и процесс, названный в столбце COMMAND, но некоторые реализации задач (например, Linux) позволяют задаче изменить имя своей команды.
  • USER: идентификатор пользователя или имя пользователя, которому принадлежит процесс, или идентификатор пользователя или логин человека, которому принадлежит каталог в /proc, где lsof находит информацию о процессе (также смотрите Что такое файловая система /proc в Linux)
  • FD: показывает файловый дескриптор файла. Файловые дескрипторы описаны ниже.
  • TYPE: тип узла, связанного с файлом. Виды данных типов описаны ниже.
  • DEVICE: содержит номера устройств, разделённые запятыми, для специальных символьных, специальных блочных, обычных файлов, каталогов или NFS. Также может отображаться базовый адрес или имя устройства с сокетом Linux AX.25.
  • SIZE/OFF: Показывает размер файла или смещение файла в байтах.
  • NODE: Показывает номер узла локального файла или номер узла NFS-файла на хосте сервера или тип интернет-протокола. Может отображаться STR для потока, IRQ или номер инода устройства с сокетом Linux AX.25.
  • NAME: показывает имя точки монтирования и файловой системы, в которой находится файл.

Колонка FD

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

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

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

  • cwd: текущий рабочий каталог.
  • err: информация об ошибке FD (см. столбец NAME).
  • ltx: текст разделяемой библиотеки (код и данные).
  • m86: файл сопоставления DOS Merge.
  • mem: файл с отображением в памяти.
  • mmap: устройство с отображением в памяти.
  • pd: родительский каталог.
  • rtd: корневой каталог.
  • txt: текст программы (код и данные)

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

  • r: доступ для чтения.
  • w: доступ для записи.
  • u: Доступ для чтения и записи.
  • : Пробел, если режим неизвестен и нет символа блокировки.
  • : режим неизвестен и есть символ блокировки.

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

  • r: Блокировка чтения на часть файла.
  • R: Блокировка чтения на весь файл.
  • w: Блокировка записи для на часть файла.
  • W: Блокировка записи для на весь файл.
  • u: Блокировка чтения и записи любой длины.
  • U: неизвестный тип блокировки.
  • : символ пробела. Нет блокировки.

Колонка TYPE

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

  • REG: Обычный файл файловой системы.
  • DIR: Директория.
  • FIFO: Специальный файл FIFO (First In First Out).
  • CHR: Специальный символьный файл.
  • BLK: Специальный блочный файл.
  • INET: Интернет-сокет.
  • unix: Доменный сокет UNIX.
  • IPv4: IPv4 сокет.
  • IPv6: Файлы IPv6 сети — даже если её адрес IPv4 преобразован в IPv6 адрес.
  • sock: Сокет неизвестного домена.
  • DEL: Указатель Linux для удалённого файла.
  • LINK: Файл символьной ссылки.
  • PIPE: Труба (pipe) — способ обмена данными между процессами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы не хотите, чтобы цифровые обозначения портов заменялись на имена (например, 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 адрес.

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

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

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

Иногда нужно убить все процессы определённого пользователя. Ниже команда, которая закроет все процессы пользователя mial:

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

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

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

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

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

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

Источник

Читайте также:  Достоинства линукс перед виндовс
Оцените статью