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

Команда lsof выводит список открытых файлов и сетевых соединений в Linux. Вот как вы можете использовать ее в своих интересах.

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

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

Что такое lsof?

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

Установка lsof в Linux

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

В системе Ubuntu или Debian введите:

В дистрибутивах Linux на базе Arch:

А в RHEL, CentOS, Rocky Linux и Oracle Linux:

Просмотр открытых файлов в Linux с помощью lsof

Вывод lsof в терминале

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

lsof может вывести список процессов, принадлежащих root, как "Permission denied". Чтобы увидеть все файлы, открытые всеми процессами в системе, запустите его от имени root:

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

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

lsof -i -r

Чтобы увидеть все интернет-сокеты, используемые в настоящее время в вашей системе, используйте опцию -i:

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

Опция -r переводит lsof в режим повтора, в котором он будет выводить результаты через определенный промежуток времени, пока вы не нажмете Ctrl + C. По умолчанию он запускается каждые 15 секунд, но вы можете изменить это значение. Например, вы можете запускать команду каждые 10 секунд, набрав:

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

Теперь вы можете отслеживать, какие процессы Linux имеют открытые файлы

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

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий