===== Как выполнить трейс доступа к файловой системе в Linux ===== {{:unix-linux:linux-cli-tools:pasted:20180609-121717.png }} При отладке разных скриптов и программ в **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
---- Дополнительные источники информации: * [[https://habr.com/post/92123/|Мониторинг доступа к файлам]] ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ |Debian GNU/Linux 8.10 (jessie) | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 09.06.2018 12:35 {{tag>Linux "File server" "File system" Trace strace Shell Debug}} ~~DISCUSSION~~