#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