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

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

Process Monitor (ранее известный как FileMon) доступен в Windows - что находится в служебном поясе Ubuntu?

Спасибо!

Ashley

9 ответов

Решение

Вы ищете Strace. Посмотрите здесь: https://wiki.ubuntu.com/Strace

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

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

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

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

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

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

Попробуй sysdig. Например:

sysdig -A -c echo_fds

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

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

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

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

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

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

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

аудит-гуй

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

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

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

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

sudo lsof 2>&1 | grep programnamehere

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

Другие вопросы по тегам