如何对文件进行监控
如何对文件进行监控
文件监控inotify-tools安装
-
检查内核是否支持,不低于2.6.13
-
使用uname -r查看版本
-
或者使用ll /proc/sys/fs/inotify/,查看是否有3个配置文件,没有则不支持
-
安装步骤
源码编译安装$ wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz $ tar zxf inotify-tools-3.14.tar.gz $ cd inotify-tools-3.14/ $ ./configure && make && make install
如果遇到以下错误:
inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory解决方法:
32位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0
64位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
inotifywait命令的用法
inotifywait -m log.txt
--timefmt 时间格式
%y年 %m月 %d日 %H小时 %M分钟
--format 输出格式
%T时间 %w路径 %f文件名 %e状态
–fromfile
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-o, –outfile
输出事件到一个文件而不是标准输出。
-m 始终保持监听状态,默认触发事件即退出
-r 递归查询目录
-q 减少不必要的输出(只打印事件信息)
-e 定义监控的事件,可用参数:
access 访问,读取文件。
modify 修改,文件内容被修改。
attrib 属性,文件元数据被修改。
move 移动,对文件进行移动操作。
create 创建,生成新文件
open 打开,对文件进行打开操作。
close 关闭,对文件进行关闭操作。
delete 删除,文件被删除。
--exclude
例子
inotifywait /opt/packages/inotify -mrq --timefmt '%d/%m/%y %H:%M' --format "%T %f %e" -e modify,create,move,delete,access,open,attrib --exclude '^.*.swp$' --outfile '/tmp/inotify.log'