gpt4 book ai didi

linux文件访问监视器,带inotify?

转载 作者:太空宇宙 更新时间:2023-11-04 11:31:15 25 4
gpt4 key购买 nike

我正在 linux 中寻找一个工具来监视文件。例如,我需要知道文件发生了什么。就像它被创建、重写、读取等等。

我知道我可以使用 inotify 来实现这一点。但我需要更多详细信息。例如,我可以知道创建文件的事件。但我不仅想要创建文件,还想要它创建的文件的大小。例如,要读取一个文件,我不仅想知道我发生的读取文件的事件,而且还想知道读取文件的详细信息,例如它读取的文件的偏移量。

有没有人可以帮助解决这个问题?

最佳答案

据我所知,内核没有提供那种深度细节的基础设施。这种支持意味着过多的监控 Hook ,甚至可能影响系统的性能。您将不得不编写自己的内核代码来接收此类信息...

您似乎也对某些操作的粒度感到困惑。例如,当通过 open() 系统调用创建文件时,它最初是空的。您需要额外的系统调用(例如 write()lseek())来改变它的大小。我不知道有任何原子操作会创建给定大小的文件。

也就是说,您可以使用以下一种或多种替代方案:

  • 使用inotifystat 系统调用来记录操作、文件大小和权限。不幸的是,这种方法不是原子的 - 它不会为您提供读/写偏移量。

  • 使用 strace在可能正在修改您的文件的任何进程上。 strace 日志对于人类解析来说可能非常冗长乏味,但提供了有关被跟踪应用程序执行的操作的大量信息。

  • 如果您对特定文件感兴趣,那么也许您可以使用 FUSE文件系统通过传递所有操作来镜像目录,同时还记录所有内容。

关于linux文件访问监视器,带inotify?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11145549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com