
Я хочу узнать, какие файловые операции (удачные и неудачные) были выполнены за последний час в моей системе. Есть ли способ сделать это?
решение1
Вы не можете увидеть историю файловых операций, если вы не отслеживали и не регистрировали их. Есть несколько способов сделать это, например, системный вызов ptrace() или утилита командной строки strace, или, возможно, дажеDTrace, но если вы не регистрировали действия, то для работы вам будут доступны только временные метки файлов.
решение2
По умолчанию такая информация не регистрируется (это было бы слишком много информации)!
Если вы хотите увидеть, что делает определенный процесс, запустите его подstrace
(это утилита Linux, другие варианты Unix имеют похожие утилиты, такие какtruss
, dtrace
, и т.д.). По умолчанию strace
регистрирует все системные вызовы. Вы можете контролировать, какой тип информации strace
отображается; например, опция -efile
ограничивает регистрацию системными вызовами, которые обращаются к файлам.
strace -o myprogram.log -efile myprogram --option
Если вы хотите регистрировать доступы ко всем файлам в определенной иерархии, вы можете использоватьLoggedFS. ВидетьМожно ли узнать, какая программа или скрипт создал данный файл?для примера использования. Не регистрируйте каталог, в который записываются логи!
Более распространенный механизм ведения журнала — это Linux.подсистема аудита. Он работает как root. СмотретьМожно ли узнать, какая программа или скрипт создал данный файл?для инструкций по настройке и примера использования. Не регистрируйте каталог, в который записываются логи!