- Операционные системы
- Виртуализация
- IT-инфраструктура
- Защита ИС и периметра
- Сетевые службы
- Хранение данных
- СУБД
- Объединенные коммуникации
- Веб-серверы и веб-движки
- Скриптинг
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:35unix-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 — Алексей Максимов
Инструменты страницы
Обсуждение