Вопрос или проблема
Есть ли способ заставить lsof работать непрерывно, чтобы отслеживать каждый файл, который открывается в реальном времени?
Я не знаю имя процесса. Я хочу, чтобы lsof работал непрерывно в течение какого-то времени, пока я не увижу, что список содержит то, что мне нужно.
Я считаю, что поскольку вы не знаете имя файла/идентификатор процесса, вы можете указать опцию имени пользователя, как показано ниже.
lsof -r 2 -u username
- Опция “-r 2” переводит lsof в режим повторения с обновлениями каждые 2 секунды. (Ctrl -c для выхода)
- Опция “-u” может использоваться для контроля активности пользователя.
Если вы знаете имя каталога, в котором запускается приложение, и не хотите указывать имя пользователя, вы можете использовать команду следующего вида,
lsof +D /some/dir -r 2
Ссылки
Просмотр сетевой активности любого приложения или пользователя в реальном времени
Ответ или решение
Мониторинг файлов в реальном времени с помощью lsof
Если вы хотите непрерывно следить за файлами, которые открываются в реальном времени, утилита lsof может стать вашим надежным помощником. Этот инструмент предоставляет возможность мониторить все файлы, открытые в системе, что очень полезно, если вы не знаете заранее ни имени процесса, ни имени файла. Вот как вы можете использовать lsof для достижения этой цели.
Запуск lsof в непрерывном режиме
Для начала вы можете использовать lsof с опцией повторного запуска, которая позволяет обновлять вывод каждые несколько секунд. Например, команда:
lsof -r 2
будет перезапускать lsof каждые 2 секунды. Это позволит вам наблюдать за системной активностью в реальном времени. Если вы хотите прекратить мониторинг, просто нажмите Ctrl+C.
Мониторинг активности пользователя
Если у вас есть информация о пользователе, чья активность вас интересует, вы можете добавлять параметр -u
с именем пользователя:
lsof -r 2 -u username
Этот подход позволяет сосредоточиться на активности конкретного пользователя, исключая другие системные процессы.
Указание конкретного каталога
Если известно имя каталога, в котором запускается интересующее вас приложение, но вы не хотите указывать пользователя, примените следующий командный синтаксис:
lsof +D /some/dir -r 2
Этот командный пример укажет lsof следить только за файлами в указанной директории, игнорируя другие части файловой системы.
Заключение
lsof в непрерывном режиме – мощный инструмент для мониторинга активности файлов и процессов. Совмещая его с фильтрами по имени пользователя или директории, вы можете охватывать именно те аспекты, которые интересуют вас более всего. Не забудьте завершить процесс нажатием Ctrl+C, когда соберете необходимую информацию.
Несмотря на простоту использования, такие утилиты как lsof требуют осторожного обращения, особенно в продуктивной среде, чтобы избежать ненужной нагрузки на систему.
И, наконец, ознакомьтесь с дополнительными возможностями lsof, которые могут быть полезны в специфических случаях, например, для сетевого мониторинга, чтобы полностью использовать потенциал этого мощного инструмента.