Назад | Перейти на главную страницу

Эквивалент SysInternals FileMon для Linux?

Я пытаюсь отладить приложение в Ubuntu - мне нужно прослушивать попытки открытия файлов (даже если файлы не существуют).

Монитор процесса (ранее известный как FileMon) доступен в Windows - что на поясе утилит Ubuntu?

Спасибо!

Эшли

Это зависит от того, что вы хотите:

  • В целом вы хотите посмотреть на inotify чтобы увидеть все обращения к файлам, выполняемые любым процессом.

  • В небольшом масштабе strace позволит вам наблюдать за системными вызовами, которые выполняет определенный процесс. Стрейс довольно крутой. Вы можете отследить вызовы процесса на «открыть», выполнив strace -f -eopen $cmd, например. В страница руководства конечно, есть полная информация о синтаксисе.

Вы ищете strace. Взгляните сюда: https://wiki.ubuntu.com/Strace

У SGI есть инструмент, который вы можете попробовать: http://oss.sgi.com/projects/fam/

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

Кстати:
lsof -ni:22 показывает, какой процесс использует порт 22.

Вот пример использования strace для отслеживания изменений файлов:

strace -f -e trace=file -p7546 -o /tmp/outputfile

-f обеспечивает захват событий от дочерних процессов.
-e trace=file говорит, что мы должны захватывать системные вызовы, связанные с файлами (например, stat, open, futex и т.д.)
-p это идентификатор процесса (полученный из ps -aux или другими способами) -o указал выходной файл (данных может быть много, и вместо этого вы можете использовать grep в качестве фильтра.

Пытаться sysdig. Например:

sysdig -A -c echo_fds

Это требует помощи от Мортадело. http://gitorious.org/mortadelo

Это старый, но я думаю, что это хорошая идея обновить его до сегодняшнего дня.

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

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

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

аудит-графический интерфейс

Это реплицирует Windows filemon, отслеживая доступ к файлам для всех мест, процессов и т. Д.

также проверьте эта почта

Вот что у меня хорошо сработало (Linux Mint 19.1):

sudo lsof 2>&1 | grep programnamehere

Не знаю почему 2>&1 был нужен, но он не фильтровался, если я его не использовал.