如何对文件进行监控

如何对文件进行监控

文件监控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'
posted @ 2022-11-09 17:19  77的小白  阅读(320)  评论(0)    收藏  举报