记录文件及目录访问,对于跟踪文件和目录的变化很有帮助。
inotifywait命令可以用来收集有关文件访问的消息。
linux发行版并没有默认包含这个命令,需要使用软件包管理器自行安装inotify-tools。
这个命令还需要将inotify支持编译入linux内核,好在大多数新的GNU/Linux发行版都在内核中启用了inotify。
下面,我们来看一个监控对文件及目录访问进行记录的例子。
监控目录访问的shell/ target=_blank class=infotextkey>shell脚本。
输出结果如下:
$./watchdir.sh .
./ CREATE new
./ MOVED_FROM new
./ MOVED_TO news
./ DELETE news
脚本分析:
以上的脚本记录给定了路径中文件或目录的创建、移动以及删除。
选项:
-m 表明要持续监视变化,而不是在事件发生之后退出。
-r 允许采用递归形式监视目录。
-e 指定需要监视的事件列表。
-q 用于减少冗余信息。只打印出所需要的信息。命令输出可以被重定向到日志文件中。
在实际的应用中,我们可以从事件列表中添加或删除事件。
一些重要的事件与描述列表。
访问(access) 读取文件
修改(modify) 文件内容被修改
属性(attrib) 文件元数据被修改
移动(move) 对文件进行移动操作
创建(create) 生成新文件
打开(open) 对文件进行打开操作
关闭(close) 对文件进行关闭操作
删除(delete) 文件被删除