[root@martin bin]# cd /usr/local/inotify-tools/bin
[root@martin bin]# ls
inotifywait inotifywatch
#inotifywait 在被监控的文件或目录上等待特定文件系统事件(open,close,delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用
#inotifywatch 收集被监控的文件系统使用度统计数据,指文件系统事件发生的次数统计
inotifywait
-r|--recursive 递归查询目录
q |--quiet 安静模式,尽量输出少
-m |--monitor 始终保持事件监听状态
--excludei 排除文件或者目录时,不区分大小写
--timefmt 指定时间输出的格式
--format 指定命令执行时的信息输出格式,%T为前面的时间格式
-e 事件
监控:(一般监控这三项即可 删除delete,创建create,修改close_write)
[root@martin bin]# ./inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e delete,create,close_write /backup/mysql/
#另起窗口 在/backup/mysql/ 下创建文件
[root@martin mysql]# touch c
[root@martin bin]# ./inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e delete,create,close_write /backup/mysql/
28/05/16 12:04 /backup/mysql/c
28/05/16 12:04 /backup/mysql/c #触发两次 create close_write
#delete
[root@martin mysql]# rm -f a
[root@martin bin]# ./inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e delete,create,close_write /backup/mysql/
28/05/16 12:04 /backup/mysql/c
28/05/16 12:04 /backup/mysql/c
28/05/16 12:06 /backup/mysql/a
[root@martin scripts]# vim inotify.sh
#!/bin/bash
inotify=/usr/local/inotify-tools/bin/inotifywait
src=/backup/mysql/
$inotify -mrq --format '%w%f' -e create,close_write,delete $src \
|while read file
do
cd $src &&
rsync -az $src --delete tom@sherry::mysql \
--password-file=/etc/rsyncd.passwd >/dev/null
done
[root@martin scripts]# chmod +x inotify.sh
[root@martin scripts]# ./inotify.sh &
[root@martin scripts]# jobs
[1]+ Running ./inotify.sh &
[root@martin scripts]# kill %1
[root@martin scripts]# jobs
[1]+ 已终止 ./inotify.sh
#server
[root@martin mysql]# /scripts/inotify.sh &
[root@martin mysql]# pwd
/backup/mysql
[root@martin mysql]# ls
c d g kk ll
#client
[root@sherry rsync-mysql]# ls
c d g kk ll
#server服务器创建文件
[root@martin mysql]# touch pp
[root@martin mysql]# ls
c d g kk ll pp
#client
[root@sherry rsync-mysql]# ls
c d g kk ll pp #上传完成
#server
[root@martin mysql]# rm -f c d
#cilent
[root@martin mysql]# ls
g kk ll pp #可删除
加入开机启动
echo '/bin/sh /scripts/inotify.sh &' >> /etc/rc.local
[root@martin mysql]# ps -ef |grep inotify.sh
root 126119 1 0 12:21 ? 00:00:00 /bin/bash /scripts/inotify.sh
root 126121 126119 0 12:21 ? 00:00:00 /bin/bash /scripts/inotify.sh
inotify-tools+rsync实时同步文件安装和配置
CentOS 6.5下Rsync远程同步