缺点:
1并发不能大于200个文件(10-100k)
2每次都是重新全部推送,
在客户端安装,首先查看是否支持
[root@rsync-c ~]# ll /proc/sys/fs/inotify/ 总用量 0 -rw-r--r-- 1 root root 0 7月 8 16:40 max_queued_events 表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。 -rw-r--r-- 1 root root 0 7月 8 16:40 max_user_instances 表示每一个real user ID可创建的inotify instatnces的数量上限。 -rw-r--r-- 1 root root 0 7月 8 16:40 max_user_watches 表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况,适当增加此值的大小。
解压安装
下载地址 :inotify-tools-3.14.tar.gz
wget https://www.jinchuang.org/novel/lnmp/inotify-tools-3.14.tar.gz tar -zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure --prefix=/usr/local/inotify make && make install #做软连接 ln -s /usr/local/inotify/bin/* /usr/bin/
测试监控操作:
我们从新打开打开一个shell窗口操作,当前shell窗口做监控查看是否监控到了变化。
#只监控创建操作 [root@rsync-c ~]# inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e create /backup #同时监控创建 删除,写入操作 [root@rsync-c ~]# inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e create,delete,close_write /backup
图为我测试的实时监测结果:
监控脚本,客户端写入删除操作同步写入到服务端同步目录中。
#!/bin/bash host1="192.168.23.252" #服务端地址 src="/backup" #源目录 dst="www" #目的目录 user="backup" #rsync用户 passfile="/etc/rsyncd.passwd" #密码文件路径 #实时监测|并且执行rsync同步操作 inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \ |while read file do #如果只同步新的文件而不同步删除掉的文件,去掉--delete参数即可, cd $src && rsync -auvrtzopgP -R --delete ./ --timeout=100 $user@$host1::$dst --password-file=${passfile} 2>&1 >/dev/null done