Я пытаюсь отладить приложение в 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
был нужен, но он не фильтровался, если я его не использовал.