Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:linux-cli-tools:how-to-perform-analysis-of-process-access-to-the-file-system-using-strace-and-logging

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

При отладке разных скриптов и программ в Linux может потребоваться анализ происходящих на файловой системы событий при запуске соответствующего скрипта или приложения. На помощь нам придёт утилита strace, которая может быть установлена из репозиториев разных дистрибутивов Linux.


Пример вызова strace

Пример вызова приложения, поведение которого на файловой системе нужно исследовать:

$ strace -xf -eopen -o /path/to/log /path/to/program

В следующем примере мы будем вызывать текстовый редактор nano и собирать лог его активности в файловой системе (strace-nano.log) в домашнем каталоге текущего пользователя:

$ strace -xf -eopen -o ~/strace-nano.log nano ~/temp.txt


Анализ полученного лога

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

$ sed -n 's/.*open(\(.*\))\s*=.*/\1/p' ~/strace-nano.log | sort
"/etc/ld.so.cache", O_RDONLY|O_CLOEXEC "/etc/nanorc", O_RDONLY "/home/user/.nano_history", O_RDONLY "/home/user/.nanorc", O_RDONLY "/home/user/temp.txt", O_RDONLY "/home/user/temp.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666 "/lib/terminfo/x/xterm", O_RDONLY "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC ...

Пример обработки лога для выборки событий доступа к файлам с попыткой записи:

$ sed -n 's/.*open(\(.*\))\s*=.*/\1/p' ~/strace-nano.log | grep -v O_RDONLY | sort
"/home/user/temp.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666

Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux 8.10 (jessie)

Автор первичной редакции:
Алексей Максимов
Время публикации: 09.06.2018 12:35

Обсуждение

Ваш комментарий:
 
unix-linux/linux-cli-tools/how-to-perform-analysis-of-process-access-to-the-file-system-using-strace-and-logging.txt · Последнее изменение: 09.06.2018 12:42 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki