使用 inotify 监控文件系统的活动 Inotify 是一个 Linux® 特性,它监控文件系统操作,比如读取、写入和创建
Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多
学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统管理的命令行工具
系统管理就像日常生活一样
就像刷牙和吃蔬菜一样,日常的维护能保持机器的良好状态
您必须定期清空废物,比如临时文件或无用的日志文件,以及花时间填写表单、回复电话、下载更新和监控进程等
幸好自动化 shell 脚本、使用 Nagios 等工具进行监控、通过常见的 cron 进行任务调度可以减轻这个负担
但奇怪的是,这些工具没有一个具有响应性
当然,您可以安排一个频繁运行的 cron 任务来监控条件,但这样繁忙的轮询 — 消耗大量资源并且具有不确定性 — 并不是很理想
例如,如果您必须监控输入数据的几个 Transfer Protocol(FTP)收存箱,您可能要通过find命令扫描每个目标目录,列举新的内容
然而,尽管这个操作看起来并没有什么害处,但每个调用都产生一个新的 shell 和find命令,这需要许多系统调用来打开目录,然后扫描目录,等等
这会造成过于频繁的或大量的轮询任务(更糟糕的是,繁忙的轮询并不总是很好
想象一下一个文件系统浏览器,比如 Mac OS X 的 Finder,轮询更新时需要的大量资源及其复杂性)
那么,管理员应该怎么办呢
令人高兴的是,您可以再次求助于可以信赖的计算机
了解 inotify Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等
您还可以跟踪活动的源头和目标等细节
使用 inotify 很简单:创建一个文件描述符,附加一个或多个监视器(一个