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

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

Рубрики:

Linux, Терминал Linux

Метки:

, ,

Команда lsof — это утилита командной строки, которая выводит список всех открытых файлов. Если в одной системе работают сразу несколько пользователей, иногда трудно определить кто использует тот или иной открытый файл. Одна из причин использования команды lsof — это ситуация, при которой диск не может быть размонтирован, так как возникает ошибка «Файлы используются».

Поэтому сегодня мы расскажем Вам о команде, позволяющей узнать, использует ли кто-то файл, и если да — то кто конкретно.

Содержание:

  1. Как работает команда lsof
  2. Использование lsof
    1. Какой процесс держит USB-флешку
    2. Процессы какого пользователя используют файлы
    3. Какие файлы использует определенная команда
    4. Какие процессы прослушивают порты
  3. Выводы

Как работает команда lsof

Команда lsof просматривает память ядра и помогает вывести в командную строку список всех открытых файлов. В этом случае открытый файл может быть:

  • обычным файлом;
  • каталогом;
  • специальным файлом;
  • потоком;
  • сетевым файлом и т. д.

Стоит отметить, что в Linux всё перечисленное является файлами. При этом данная команда может применяться с огромным количеством различных полезных опций. Для получения дополнительной информации по ним — посмотрите man страницу lsof:

Использование lsof

Вы можете использовать данный инструмент в файловой системе Linux. Это поможет Вам получить следующие данные:

  • имя владельца файла;
  • информацию о процессах, использующих файл;
  • размер файла и много другое.

В этом случае предлагаем использовать команду, как показано ниже:

 

lsof

Важно: после выполнения команды ее вывод будет очень большим.

Какой процесс держит USB-флешку

Давайте рассмотрим такой пример. У нас есть флешка, подключенная к ПК. При попытке ее извлечь, мы получаем ошибку Error unmounting /dev/sdb1: target is busy:

 

umount usb

Эта ошибка означает, что файл, который хранится на флешке, все еще используется.

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

 

lsof path

На скриншоте выше видно, что файл 123.sh, который хранится на флешке, открыт в текстовом редакторе vi.

Для получения того же результата можно использовать команду grep для сортировки вывода lsof. Например:

 

lsof grep

Процессы какого пользователя используют файлы

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

 

lsof user

Читайте также: 10 примеров команд lsof в Linux

Можно исключить процессы определенного пользователя из вывода lsof. Для этого напишите перед именем пользователя специальный символ ^:

 

lsof not user

Какие файлы использует определенная команда

Также утилита lsof позволяет посмотреть, какие файлы использует та или иная команда. Для этого применяется параметр -c. Например, давайте узнаем, какие файлы использует редактор vi:

 

lsof command

Какие процессы прослушивают порты

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

 

lsof interface port

Чтобы просмотреть все сокеты IPv4 или IPv6, передайте в качестве аргумента цифру 4 или 6, соответственно:

 

lsof ipv4

Также можно определить процесс, который прослушивает / использует порт 80. Для этого воспользуемся одной из следующих команд:

 

lsof port

Выводы

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

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Терминал Linux

Метки:

, ,

Больше похожих постов

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню