软件仓
zookeeper操作
zookeeper单机安装
zookeeper集群安装
keeplived安装
Tomcat安装
Tomcat配置
tomcat问题
Ftp操作
proftpd文件共享
vsftpd文件共享
NFS文件共享(挂载)
NFS问题
ISCSI网络存储
Samba服务器
Rsync文件同步
Inotify工具
Inotify+Rsync脚本
DHCP服务器
DNS服务器
从DNS服务器
Etcd常用操作
etcd api常用操作
etcd 备份与恢复
Etcd web管理界面
etcd集群搭建
etcd集群管理
Screen终端软件
NTP时间服务
本文档使用MrDoc发布
返回首页
-
+
Inotify工具
2020年5月7日 14:23
admin
#安装Inotify >##方式一:YUM源安装 yum -y install inotify-tools >##方式二:源码安装 >####1.下载源码包 https://sourceforge.net/projects/inotify-tools/ >####2.将源码安装包解压复制到/usr/local/inotify >####3.安装依赖 yum -y install gcc automake libtool >####4.编译安装 Shell > ./configure Shell > make && make install >####5.卸载 Shell > make uninstall #使用inotifywait >#####仅执行阻塞,等待 inotify 事件,你可以使用它来监控任何一组文件和目录,或监控整个目录树(目录、子目录、子目录的子目录等等),并且可以结合 shell 脚本,更好的使用 inotifywait。 inotifywait [选项] [文件或目录] ------------------------------------------------------- 选项: -h,--help # 输出帮助信息 @<file> # 排除不需要监视的文件,可以是相对路径,也可以是绝对路径 --fromfile # 从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头 -m,--monitor # 接收到一个事情而不退出,无限期地执行。默认行为是接收到一个事情后立即退出 -d,--daemon # 跟--monitor一样,除了是在后台运行,需要指定 --outfile把事情输出到一个文件。也意味着使用了--syslog -o,--outfile # 输出事情到一个文件而不是标准输出。 -s,--syslog # 输出错误信息到系统日志 -r,--recursive # 监视一个目录下的所有子目录。 -q,--quiet # 静默模式,不输出信息 --exclude # 正则匹配需要排除的文件,大小写敏感。 --excludei # 正则匹配需要排除的文件,忽略大小写。 -t,--timeout# 设置超时时间,如果为0,则无限期地执行下去。 -e,--event # 指定监视的事件。 -c,--csv # 输出csv格式。 --timefmt # 指定时间格式,用于--format选项中的%T格式。 --format # 指定输出格式。 %w 表示发生事件的目录 %f 表示发生事件的文件 %e 表示发生的事件 %Xe 事件以“X”分隔 %T 使用由--timefmt定义的时间格式 ------------------------------------------------------- --- >####下面是一些可监听事件,针对-e选项使用: >|参数|说明| |--|--| |access|文件读取 |modify|文件更改。 |attrib|文件属性更改,如权限,时间戳等。 |close_write|以可写模式打开的文件被关闭,不代表此文件一定已经写入数据。 |close_nowrite|以只读模式打开的文件被关闭。 |close|文件被关闭,不管它是如何打开的。 |open|文件打开。 |moved_to|一个文件或目录移动到监听的目录,即使是在同一目录内移动,此事件也触发。 |moved_from|一个文件或目录移出监听的目录,即使是在同一目录内移动,此事件也触发。 |move|包括moved_to和 moved_from |move_self|文件或目录被移除,之后不再监听此文件或目录。 |create|文件或目录创建 |delete|文件或目录删除 |delete_self|文件或目录移除,之后不再监听此文件或目录 |unmount|文件系统取消挂载,之后不再监听此文件系统。 --- >##inotifywait命令 >####实时监控/etc目录的所有事件(包括文件的访问,写入,修改,删除等) inotifywait -mr /etc >####实时监控/home目录的文件或目录创建,修改和删除相关事件 inotifywait -mrq -e create,modify,delete /home >####实时监控/etc/passwd的文件修改,删除和权限相关事件,并且要求指定输出格式为27/06/14 16:12 /etc/passwd ATTRIB inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' --event modify,delete,attrib /etc/passwd --- >##inotifywait脚本 >#####写一个脚本实现对 /data/web 目录进行监控,监控文件删除,修改,创建和权限相关事件,并且要求将监控信息写入/var/log/web_watch.log。要求日志条目要清晰明了,能突显文件路径、事件名和时间。 vim web_watch.sh -------------------------------------------------------- #!/bin/bash inotifywait -mrq --timefmt '%y/%m/%d %H:%M' --format '%T %w%f %e' --event delete,modify,create,attrib /data/web | while read date time file event do case $event in MODIFY|CREATE|MOVE|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR) echo $event'-'$file'-'$date'-'$time >> /var/log/web_watch.log ;; MOVED_FROM|MOVED_FROM,ISDIR|DELETE|DELETE,ISDIR) echo $event'-'$file'-'$date'-'$time /var/log/web_watch.log ;; esac done --- #使用inotifywatch >#####用来收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次。 inotifywait [选项] [文件或目录] ------------------------------------------------------- 选项: -h,--help # 输出帮助信息 -v,--verbose # 输出详细信息 @ # 排除不需要监视的文件,可以是相对路径,也可以是绝对路径。 --fromfile # 从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。 -z,--zero # 输出表格的行和列,即使元素为空 --exclude # 正则匹配需要排除的文件,大小写敏感。 --excludei # 正则匹配需要排除的文件,忽略大小写。 -r,--recursive # 监视一个目录下的所有子目录。 -t,--timeout # 设置超时时间 -e,--event # 只监听指定的事件。 -a,--ascending # 以指定事件升序排列。 -d,--descending # 以指定事件降序排列 ------------------------------------------------------- --- >####下面是一些可监听事件,针对-e选项使用: >|参数|说明| |--|--| |access|文件读取 |modify|文件更改。 |attrib|文件属性更改,如权限,时间戳等。 |close_write|以可写模式打开的文件被关闭,不代表此文件一定已经写入数据。 |close_nowrite|以只读模式打开的文件被关闭。 |close|文件被关闭,不管它是如何打开的。 |open|文件打开。 |moved_to|一个文件或目录移动到监听的目录,即使是在同一目录内移动,此事件也触发。 |moved_from|一个文件或目录移出监听的目录,即使是在同一目录内移动,此事件也触发。 |move|包括moved_to和 moved_from |move_self|文件或目录被移除,之后不再监听此文件或目录。 |create|文件或目录创建 |delete|文件或目录删除 |delete_self|文件或目录移除,之后不再监听此文件或目录 |unmount|文件系统取消挂载,之后不再监听此文件系统。 --- >##inotifywatch命令 >####统计/home目录所在文件系统发生的事件次数 inotifywatch -v -e create -e modify -e delete -t 30 -r /home
分享到: