#inotify 实施准备
大前提 rsync 服务器配置成功,能在客户端推拉数据才能配inotify。 uname -r 内核版本2.6.13 以上 [root@centos7 ~]# ls -l /proc/sys/fs/inotify/ 总用量 0 -rw-r--r--. 1 root root 0 8月 4 07:13 max_queued_events -rw-r--r--. 1 root root 0 8月 4 07:13 max_user_instances -rw-r--r--. 1 root root 0 8月 4 07:13 max_user_watches
2.下载inotify 源码包
cd /tmp wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz --no-check-certificate tar zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure --prefix=/usr/local/inotify-tools-3.14&&make&&make install ln -s /usr/local/inotify-tools-3.14 /usr/local/inotify [root@centos7 tmp]# cd /usr/local/inotify/ [root@centos7 inotify]# ll 总用量 0 drwxr-xr-x. 2 root root 45 8月 4 15:20 bin #inotify执行命令(二进制) drwxr-xr-x. 3 root root 26 8月 4 15:20 include #inotify 程序所需的头文件 drwxr-xr-x. 2 root root 143 8月 4 15:20 lib #动态连接库文件 drwxr-xr-x. 4 root root 28 8月 4 15:20 share #帮助文档 ├── bin │ ├── inotifywait │ └── inotifywatch
测试
/usr/local/inotify-tools-3.14/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,delete /backup 04/08/18 15;46 /backup/1.txt /usr/local/inotify-tools-3.14/bin/inotifywait -mrq --format ' %w%f' -e create /backup
#监控脚本1(精准同步) #!/bin/sh cmd="/usr/local/inotify-tools-3.14/bin/inotifywait" $cmd -mrq --format ' %w%f' -e create,delete,close_write /backup|\ while true line do [ ! -e "$line" ] rsync -az $line backup@192.168.1.99::test --password-file=/etc/rsync.password done
#监控脚本2(同步整个目录) #!/bin/sh host01=192.168.1.99 src=/backup dst=oldboy user=rbackup rsync_passfile=/etc/rsync.password inotify_home=/usr/local/inotify-tools-3.14/ ${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \ | while read file do cd $src && rsync -aruz -R --delete ./ --timeout=100 $user@$host01::$dst --password-file=${rsync_passfile} > /dev/null 2>&1 done exit 0
停留在世界边缘,与之惜别