Как я могу узнать, какие программы изменили файл за какой-то период времени?

Я хотел бы лучше понять, какие программы изменяют определенный файл 1 во время перезагрузки. Могу ли я что-то настроить для регистрации информации такого рода?

Опрос, для которого процессы в настоящее время открывают файл, работать не будет, поскольку файл может быть открыт только в течение нескольких миллисекунд.

Можно ли использовать трассировку ядра для сбора этой информации?


1 /var/lib/alsa/asound.state , если вам интересно, но мне интересно в общем решении.

6
задан 13 April 2017 в 15:23

1 ответ

Это может быть достигнуто с помощью инструмента fuser. В нем перечислены идентификаторы всех процессов, обращающихся к конкретному файлу. Попробуйте,

fuser -u .

... чтобы увидеть, какие файлы «открыты» в вашем домашнем каталоге, идентификатор процесса и имя пользователя, владеющего этими процессами.

В вашем случае, я не уверен, что это будет полезно, так как вы пытаетесь контролировать перезагрузку. Я подозреваю, что rc.local выполнится слишком поздно при перезагрузке, чтобы захватить что-нибудь полезное, скажем, с

watch -n 0.5 "fuser -u /var/lib/alsa/asound.state"

Хмм - я только что попытался вывести это в файл и вывод не очень красивый. Но если это можно решить, то, возможно, чего-то можно достичь с помощью cron?

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: