什么是Inotify?
Inotify一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作,也就是可以监控文件发生的一切变化。。
inotify-tools是一个C库和一组命令行的工作提供Linux下inotify的简单接口。inotify-tools安装后会得到inotifywait和inotifywatch这两条命令:
一、安装
1.从内核和目录里面查看是否支持inotify
[root@yaoji-dev-test
~]# uname -r
3.10.0-693.2.2.el7.x86_64
2.6.13以上版本内核都会支持
ls -l /proc/sys/fs/inotify/ -→
主要查看下面有没有三个文件,有则表示支持:
2.检查是否有安装inotify 如果没有就安装
rpm -qa inotify-tools安装命令为:rpm -ivh --force inotify-tools-3.14-8.el7.x86_64.rpm
二、配置:
#设置系统环境变量,添加软连接
echo"PATH=/usr/local/bin:$PATH" >> /etc/profile.d/inotify.sh
source/etc/profile.d/inotify.sh
echo"/usr/local/lib/" > /etc/ld.so.conf.d/inotify.conf
ln-sf /usr/local/include/inotifytools /usr/include/inotify
#修改inotify默认参数(inotify默认内核参数值太小)
sysctl-w fs.inotify.max_queued_events="99999999"
sysctl-w fs.inotify.max_user_watches="99999999"
sysctl-w fs.inotify.max_user_instances="65535"
echofs.inotify.max_queued_events=99999999 >> /etc/sysctl.conf
echofs.inotify.max_user_watches=99999999 >> /etc/sysctl.conf
echofs.inotify.max_user_instances=65535 >> /etc/sysctl.conf
#
32位操作系统对应的路径是/usr/lib/libinotifytools.so.0
ln-sf /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
三、参数详解
安装完成后会生成两个命令
/usr/bin/inotifywait
/usr/bin/inotifywatch
inotifywait命令可以用来收集有关文件访问信息,Linux发行版一般没有包括这个命令,需要安装inotify-tools,这个命令还需要将inotify支持编译入Linux内核,好在大多数Linux发行版都在内核中启用了inotify。
inotifywatch命令用于收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次
inotifywait命令参数:
-m是要持续监视变化。
-r使用递归形式监视目录。
-q减少冗余信息,只打印出需要的信息。
-e指定要监视的事件列表。
--timefmt是指定时间的输出格式。
FMT: # --timefmt '%y-%m-%d %H:%M'
--format指定文件变化的详细信息。
FMT: # --format '%T %f %e'
--outfile将事件输出到指定文件,而不输出到屏幕
-d|--daemon以守护进程方式后台运行(除了在后台运行外,与-m选项一样)
可监听的事件:
事件描述
access访问,读取文件
modify修改,文件内容被修改
attrib属性,文件元数据被修改
move移动,对文件进行移动操作
create创建,生成新文件
open打开,对文件进行打开操作
close关闭,对文件进行关闭操作
delete删除,文件被删除
四、使用示例
监听/tmp目录内所有文件和目录的"增删改"操作/usr/bin/inotifywait -mrq -e
'create,delete,close_write,attrib,moved_to' --timefmt '%Y-%m-%d %H:%M' --format
'%T %f %e' /tmp/
2018-05-21 19:53 xiaoke.txt CREATE
2018-05-21 19:53 xiaoke.txt ATTRIB
2018-05-21 19:53 xiaoke.txt CLOSE_WRITE,CLOSE
2018-05-21 19:54 xiaoke.txt DELETE