`
tomqyp
  • 浏览: 26150 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

转 监视文件系统的一举一动 ── inotifywait

阅读更多

在小舅子的电脑上好网没地方存,暂时放在这里。希望这个inotifywait比windows下人filemon好用。

 原文出自:http://li2z.cn/2009/12/11/inotifywait/

 

监视文件系统的一举一动 ── inotifywait

某天,TX大侠说他找不到awn的配置文件在什么地方,问我知道不?而我只是在N年前用过一下下awn而已,所以,理所当然地不知道了。后来,我们想了一个土办法:
在$HOME下先执行一次

tree -as > /tmp/before

然后在awn的界面里修改一下配置,再在$HOME下再执行一次

tree -as > /tmp/after

然后再

diff /tmp/before /tmp/after

哈哈,别说,这样还真把需要的配置文件找到了。但是,谁看着这个方法,都多少会觉得有点别扭。
现在,我发现了这个可以监视文件系统的任何动作的工具: inotifywait (项目主页) 。
inotifywait 包含在gentoo的 sys-fs/inotify-tools 包里,其他发行版应该也是叫这个名字。
这个工具是使用linux内核的inotify调用,来实现监视功能的。所以你需要有2.6.13以上版本的内核,才会有这个调用。
像上例中,如果要找某个未知文件的该动的话,你可以监视整个$HOME目录,这样:

inotifywait -mr $HOME

现在你再修改awn的配置,或者打开/修改/删除任何$HOME及其子目录下的文件的话,终端都会显示出来。比如:

/home/lily/test/ CREATE abcd.txt
/home/lily/test/ OPEN abcd.txt
/home/lily/test/ ATTRIB abcd.txt
/home/lily/test/ CLOSE_WRITE,CLOSE abcd.txt
/home/lily/test/ MODIFY abcd.txt
/home/lily/test/ OPEN abcd.txt
/home/lily/test/ MODIFY abcd.txt
/home/lily/test/ CLOSE_WRITE,CLOSE abcd.txt
/home/lily/test/ DELETE abcd.txt

这个就是我在~/test下执行

touch abcd.txt && echo 111 > abcd.txt && rm abcd.txt

的时候的结果,很详细吧?

另外值得注意的是,如果你 $HOME 下的文件数目比较多,大于 /proc/sys/fs/inotify/max_user_watches 里的值(默认才8k)的话,inotifywait 就会提示超出限制,报错了。这时候你可以估算下总的文件数,然后手工修改上限值。

echo 170000 | sudo tee /proc/sys/fs/inotify/max_user_watches

我这边把上限改成了170000,发现CPU和内存的占用都还不是很明显,还是完全可以接受的。

PS:除了使用这个inotifywait以外,你也可以在自己的程序里直接调用内核的inotify完成某些特定的功能,而且python和perl都有相应的模块可以直接调了,更详细的介绍可以看这里(翻遍了google,好不容易才找到这原文啊,BS那些转载不注明原地址的,还有转了以后,不管代码格式却分成10来页骗点击量的)。

最后修改时间: 2009年12月11日 21:06

 

分享到:
评论

相关推荐

    c#监视文件系统

    总的来说,C#监视文件系统是一个强大的特性,通过合理的编程和设计,可以实现高效且可靠的文件系统监控功能。对于开发者来说,理解和掌握`FileSystemWatcher`是提升工作效率、优化系统监控的关键技能之一。

    监视你的一举一动

    标题中的“监视你的一动一动”暗示了这是一个与监控用户行为有关的程序,特别是通过键盘输入进行跟踪。描述进一步证实了这一点,指出它是一个键盘监控程序,这意味着它记录并可能分析用户在计算机上敲击的每一个键。...

    网页文件监视系统 可以监视文件是否被改变了

    总的来说,网页文件监视系统是IT行业中一个实用的工具,它结合了文件系统监控技术与网页开发的需求,提供了一种高效且精准的文件变动管理方案。无论是对于开发者调试网页,还是管理员监控服务器上的动态,都有着显著...

    文件系统监视器

    文件系统监视器是一种实用工具,专门设计用于跟踪和记录文件系统的任何变化或活动。它能够帮助用户深入了解系统中发生的文件操作,例如创建、修改、删除、读取和写入等事件,这对于系统管理员、开发者以及故障排查...

    文件系统监视工具v1

    文件系统监视工具是一种重要的系统监控软件,主要用于跟踪和记录对文件系统的访问和修改行为。在IT领域,这类工具被广泛应用于系统安全分析、程序调试、数据保护和性能优化等多个场景。"文件系统监视工具v1"是这样一...

    文件监视系统

    文件监视系统是一种重要的工具,它允许用户实时跟踪和记录指定目录下的文件系统活动。这种系统在许多场景下都非常有用,例如软件开发、数据分析、日志监控等,它可以帮助用户及时发现并响应文件的变化,提高工作效率...

    linux 操作系统 GTK /proc文件 系统监视器

    在Linux操作系统中,/proc文件系统是一个非常重要的虚拟文件系统,它提供了查看和修改内核运行时状态的接口。这个特殊的文件系统并不占用磁盘空间,而是动态地反映了当前系统的进程、硬件信息以及各种系统参数。`/...

    winform 监视文件系统源码

    本文将深入探讨“WinForm监视文件系统源码”这一主题,旨在帮助开发者理解如何使用C#和WinForms来实现文件系统的实时监控功能。 首先,我们需要了解WinForms的基本结构。WinForms是通过控件(如按钮、文本框等)和...

    windows系统文件操作监视工具

    在IT领域,尤其是在系统管理和安全监控方面,"Windows系统文件操作监视工具"是一个重要的概念。这类工具主要用于跟踪、记录和分析在Windows操作系统中对文件和文件夹进行的各种操作,包括创建、删除、修改等动作。这...

    文件系统监视工具源代码

    文件系统监视工具是一种至关重要的软件开发工具,它允许开发者跟踪并理解系统中文件操作的细节。sysinternals公司推出的这款工具,以其独特的动态加载驱动方式,为开发者提供了一个全面了解和控制文件系统活动的平台...

    windowns文件系统监视器

    十分杰出的文件监控软件,能够监视你电脑中软件的文件系统访问情况,通俗讲就是软件打开关闭或创建删除了些什么文件,均逃不过它的眼睛,它是让流氓程序现身的利器!更好保护你的隐私!它不支持网络数据包监控,但在...

    C# 如何监视文件变化的各事件

    `FileSystemWatcher`是.NET Framework提供的一个类,它允许应用程序监视文件系统的更改,并在发生特定类型的事件时接收通知。这些事件包括文件或目录的创建、删除、重命名以及内容的改变等。通过`FileSystemWatcher`...

    C#使用FileSystemWatcher组件监视系统日志文件是否被更改

    综上所述,使用`FileSystemWatcher`组件在C#中监视系统日志文件的变更是一项强大的功能,可以帮助开发者实现动态响应文件系统的变化,从而提高应用程序的智能化和实时性。在实际编程过程中,需要综合考虑性能、资源...

    监视文件或文件夹是否被改动.rar_文件 监视_监视 文件_监视文件_监视目录_目录 监视

    综上所述,文件或目录监控是IT领域中的一个重要技术,它允许程序对文件系统的变动做出即时响应,对于开发、运维和安全等多方面都有着实际的应用价值。通过了解并掌握这些知识点,我们可以构建更高效、更智能的系统...

    HOOK监视文件变化

    在IT领域,"HOOK监视文件变化"是一种常见的技术,它涉及到操作系统级别的编程,尤其是Windows API中的文件系统监视。这项技术允许程序实时跟踪指定文件或目录的任何修改、创建或删除等事件,这对于软件开发、日志...

    程序监视文件的存取.rar_文件监视_监视 文件

    FindFirstChangeNotification函数用于设置一个文件或目录的监视,指定要监视的文件系统更改类型,例如FILE_NOTIFY_CHANGE_FILE_NAME、FILE_NOTIFY_CHANGE_DIR_NAME、FILE_NOTIFY_CHANGE_ATTRIBUTES等。一旦注册了...

    文件监视工具,可以实时监视各文件的状态

    标题中的“文件监视工具,可以实时监视各文件的状态”揭示了这种工具的核心功能,即实时跟踪并记录系统中文件的读写、创建、删除等操作,帮助用户了解程序运行过程中对文件系统的具体影响。 描述中提到“对于分析...

    文件转换监视器

    本程序与文件上传配合使用,主要功能是监视"路径一"所指的文件夹如发现用户有上传的文件,则将其转移到"路径二"文件夹下,并转换为swf格式。swf格式文件将被放在"路径三"文件夹下。(路径名不可有空格) 注意: 一、...

    Filemon文件系统监视软件

    Filemon 是一款出色的文件系统监视软件,它可以监视应用程序进行的文件读写操作。它将所有与文件一切相关操作(如读取、修改、出错信息等)全部记录下来以供用户参考,并允许用户对记录的信息进行保存、过滤、查找等...

    服务器木马文件监视系统

    文件监视是系统的核心功能,通过C#编程语言实现,利用.NET Framework 2.0提供的API和库,对服务器的文件系统进行深度监控。.NET Framework 2.0是一个强大的开发平台,提供了丰富的类库和工具,支持创建多种类型的...

Global site tag (gtag.js) - Google Analytics