实验环境:
Server : 192.168.9.109  rsync+inotify
WEB1:192.168.9.106   rsync server
WEB2:192.168.9.104   rsync server
Server为分发机,有内容更新则推送rsync server
注:也可以WEB到Server拉取数据

(1)Server下载安装rsync+inotify
下载安装rsync
#wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz
#tar xf rsync-3.1.2.tar.gz
#cd rsync-3.1.2
#./configure 
#make 
#make install 
下载安装inotify
# uname -r
2.6.32-431.el6.x86_64  
# ls -l /proc/sys/fs/inotify
total 0
-rw-r--r-- 1 root root 0 Aug 30 12:28 max_queued_events
-rw-r--r-- 1 root root 0 Aug 30 12:28 max_user_instances
-rw-r--r-- 1 root root 0 Aug 30 12:28 max_user_watches
如果有上面三项输出,表示系统已经默认支持inotify,接着就可以开始安装inotify-tools了。
# cd /usr/local/src/
# wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
# tar xf inotify-tools-3.14.tar.gz 
# cd inotify-tools-3.14
# ./configure 
# make
# make install
# ll /usr/local/bin/inotifywa*
-rwxr-xr-x 1 root root 44287 Aug 31 12:23 /usr/local/bin/inotifywait
-rwxr-xr-x 1 root root 41377 Aug 31 12:23 /usr/local/bin/inotifywatch
#inotify-tools安装完成后,会生成inotifywait和inotifywatch两个指令,其中,inotifywait用于等待文件或文件集上的一个特定事件,它可以监控任何文件和目录设置,并且可以递归地监控整个目录树。  inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。

配置SERVER节点:
# vim /data0/inotify.sh
#!/bin/bash
host1=192.168.9.104
host2=192.168.9.106

src=/webroot/
dst1=WEB1
dst2=WEB2
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' \
-e modify,delete,create,attrib ${src} | which read file
do
    /usr/bin/rsync -vzrtopg --delete --progress ${src} ${host1}::${dst1}
    /usr/bin/rsync -vzrtopg --delete --progress ${src} ${host2}::${dst2}
    echo "${files} was rsyncd" > /tmp/rsync.log 2>&1
done
# chmod +x /data0/inotify.sh
# nohup /data0/inotify.sh &
# echo  "nohup /data0/inotify.sh &" >> /etc/rc.d/rc.local

(2)WEB1安装rysnc
下载安装rsync
#wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz
#tar xf rsync-3.1.2.tar.gz
#cd rsync-3.1.2
#./configure 
#make 
#make install 
配置rsync
# cat /etc/rsyncd.conf 
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log
lock file = /var/lock/rsync.lock
hosts deny = *

[WEB1]
path = /var/www/htm1
comment = WEB1
ignore errors
read only = no
write only = no
hosts allow = 192.168.9.109 192.168.1.104 192.168.5.0/24
list = false
uid = root
gid = root
启动
#/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf 
#echo "/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local

(3)WEB2下载安装rsync
#wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz
#tar xf rsync-3.1.2.tar.gz
#cd rsync-3.1.2
#./configure 
#make 
#make install 
配置rsync
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log
lock file = /var/lock/rsync.lock
hosts deny = *

[WEB2]
path = /var/www/htm2
comment = WEB2
ignore errors
read only = no
write only = no
hosts allow = 192.168.9.109 192.168.1.104 192.168.5.0/24
list = false
uid = root
gid = root

启动
#/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf 
#echo "/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local