在Linux系统中使用inotifywait监控文件变动

2025-10-24 00:55:09

1、先安装EPEL安装源

根据自己的系统选择相对应的包安装

CentOS6/RHEL6

#yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

CentOS7/RHEL7

#yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

CentOS8/RHEL8

#yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

在Linux系统中使用inotifywait监控文件变动

2、安装inotify-tools工具

# yum install inotify-tools

在Linux系统中使用inotifywait监控文件变动

3、执行inotifywait命令确认是否安装成功

# inotifywait -h

在Linux系统中使用inotifywait监控文件变动

4、在使用方法下面可以看到inotifywait支持监控哪些事件择泛:

access 读文件或者目录

modify 修改文件或者目录

attrib 文件良袭或者目录属性的改变

close_write 写完文件或者目录后关闭

close_nowrite 读完文件或者目录后关闭

close 读写文件或者目录后关闭

open 文件或者目录打开

moved_to 文件排婶侵或者目录移动监控目录下

moved_from 文件或者目录从监控目录中移出

move 文件或者目录在监控目录中移出或者移进

create 在监控目录中新建文件或者目录

delete 在监控目录中删除文件或者目录

delete_self 文件或者目录被删除

unmount 文件目录被umount

在Linux系统中使用inotifywait监控文件变动

1、监控/etc目录中的文件和目录修改、删除、新建、属性的改变:

# inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w%f %e' -e modify,delete,create,attrib /etc

-m  持续监听

-r    使用递归形式监视目录

-q   减少冗余信息,只打印出需要的信息

-e   指定要监视的事件,多个时间使用逗号隔开

--timefmt 时间格式

--format 监听到的文件变化的信息

2、然后在另一个窗口中,切换到/etc/目录中,可以新建文件、删除文件,inotifywait就会有输出提示。

# cd /etc

# touch 1.txt

输出:

2019-11-26 21:53 /etc/1.txt CREATE

2019-11-26 21:53 /etc/1.txt ATTRIB

在Linux系统中使用inotifywait监控文件变动

在Linux系统中使用inotifywait监控文件变动

3、我们可以加上-d使 inotifywait在后台运行,再加上-o filename使输出内容保存到文件中。

# inotifywait -mrqd --timefmt '%Y-%m-%d %H:%M' --format '%T %w%f %e' -e modify,delete,create,attrib /etc -o /tmp/file_change.log

在Linux系统中使用inotifywait监控文件变动

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢