首页 > 技术文章 > inotify的搭建

wangyinuo 2018-11-08 15:51 原文

inotify的搭建

 

在安装inotify之前我们要先安装云yum源

然后安装inotify的工具

命令

yum -y install inotify-tools

安装了以后会有两个命令;

inotifywait:在被监控的文件或目录上等待特定文件系统事件(open,close,delete等)发生,执行后处于阻塞状态,适合shell脚本中使用。 
inotifywatch:收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数统计。

innotifwait的参数

 

 
inotifywait参数    含义说明
-r --recursive    递归查询目录
-q --quiet    打印很少的信息,仅仅打印监控事件的信息
-m,--monitor    始终保持事件监听状态
--exclude    排除文件或目录时,不区分大小写。
--timefmt    指定时间输出的格式
--format    打印使用指定的输出类似格式字符串
-e,--event    通过此参数可以指定需要监控的事件,如下一个列表所示
 
 
-e :--event的各种事件含义

Events    含义
access    文件或目录被读取
modify    文件或目录内容被修改
attrib    文件或目录属性被改变
close    文件或目录封闭,无论读/写模式
open    文件或目录被打开
moved_to    文件或目录被移动至另外一个目录
move    文件或目录被移动到另一个目录或从另一个目录移动至当前目录
create    文件或目录被创建在当前目录
delete    文件或目录被删除
umount    文件系统被卸载
 

书写格式的事例

inotifywait 参数 表现格式 指定事件 指定监控目录

inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e create /backup

rsync 加inotify的试试监控脚本

 
#!/bin/bash
Path=/data
backup_Server=172.16.1.41
/usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data  | while read line  
do
    if [ -f $line ];then
        rsync -az $line --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password       
    else
        cd $Path &&\
        rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password
    fi
done
 
 
加入开机自启
echo "/bin/sh /server/scripts/inotify.sh &" >> /etc/rc.local 提示: 一个& 代表从后台开始运行该条命令。

在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定的限制 
max_user_watches:设置inotifywait或inotifywatch命令可以监视的文件数量(单进程) 
max_user_instances:设置每个用户可以运行的inotifywait或inotifywatch命令的进程数 
max_queued_events:设置inotify实例事件(event)队列可容纳的事件数量。

 

推荐阅读