Чтобы наблюдать за всеми системными вызовами, происходящими в системе, вы можете использовать подсистему аудита Linux , чтобы отслеживать конкретный системный вызов. Вы можете настроить фильтры, такие как ограничение часов деревом каталогов. Документация довольно скудная; начните с страницы руководства пользователя audctl или, возможно, этого руководства . В последних выпусках поставляется пакет auditd
. Установите его и убедитесь, что демон auditd
работает, затем выполните
auditctl -A exit,always -F dir=/mount/point -S stat
и наблюдайте, как звонки регистрируются в /var/log/audit/audit.log
(или там, где ваш дистрибутив настроил это).
С другой стороны, если вас интересуют только системные вызовы, выполняемые определенным процессом (и, возможно, его подпроцессами), используйте strace .
strace -s9999 -estrace -f mycommand
В промежутке, если вы хотите наблюдать за некоторыми обращениями к файловой системе множества программ, сделайте так, чтобы они обращались к файлам, которые вас интересуют, через loggedfs . Это наращиваемая файловая система: она предоставляет альтернативное представление существующего дерева каталогов. Он может регистрировать каждую операцию, имеет богатые фильтры и поставляется с разумной документацией.