系统环境
节点名称   内核版本         用途          ip地址          网页数据路径          充当角色
web1    2.6.18-194.el5   服务节点1     192.168.18.77     /data/web             rsync服务端
web2    2.6.18-194.el5   服务节点2     192.168.18.78     /data/web             rsync服务端
web3    2.6.18-194.el5   服务节点3     192.168.18.79     /data/web             rsync服务端
Server  2.6.18-194.el5   内容发布节点   192.168.18.76    /data/web/wwwroot    (充当rsync客户端的角色)
 
Inotify-tools是监控文件系统变化的工具,因此必须安装在内容发布节点上
内容发布节点 (安装)           服务节点 (安装)
inotify-tools                  rsync
rsync
 
在三个服务节点上配置
1、安装
#tar fxz rsync-3.0.4.tar.gz
#cd rsync-3.0.4
rsync-3.0.4]#./configure
rsync-3.0.4]#make  && make install
 
2、配置rsync.conf文件
web1节点的rsyncd.conf(此文件默认没有,可手动创建,web2web3文件类似)
#more  /etc/rsync.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
 
[web1]
path = /data/web/
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 192.168.18.76
hosts deny = *
list = false
uid = root
gid = root
auth users = repluser1
secrets file = /etc/rep1.pass
 
3、创建密码文件并设定600权限
#vim   /etc/rep1.pass
username:passwd
#chmod  600  /etc/rep1.pass
 
4、启动守护进程
# /usr/bin/rsync --daemon
# ps -ef |grep rsync
root      8662     1  0 17:37 ?        00:00:00 /usr/bin/rsync --daemon
 
在内容发布节点上配置
1、安装rsyncinotify
查看内核是否支持inotify
#ll  /proc/sys/fs/inotify
-rw-r--r-- 1 root root 0 01-22 18:59 max_queued_events
-rw-r--r-- 1 root root 0 01-22 18:59 max_user_instances
-rw-r--r-- 1 root root 0 01-22 18:59 max_user_watches
如果有上面3项输出,表示系统默认支持inotify
#tar  fxz inotify-tools-3.14.tar.gz
#cd  inotify-tools-3.14
inotify-tools-3.14]#./configure
inotify-tools-3.14]#make && make install
inotify-tools-3.14]#ll  /usr/local/bin/inotifywa*
-rwxr-xr-x 1 root root 47208 01-17 11:57 /usr/local/bin/inotifywait
-rwxr-xr-x 1 root root 43538 01-17 11:57 /usr/local/bin/inotifywatch
安装完成后会生成上面两个指令
 
2、在内容发布节点上创建密码文件
#vim /etc/server.pass
#more  /etc/server.pass
passwd
 
3、在内容发布节点上创建脚本
#vim  rsync.sh
#!/bin/bash
host1=192.168.18.77
host2=192.168.18.78
host2=192.168.18.79
src=/data/web/webroot/
dst1=rep1
dst2=rep2
dst3=rep3
user1=repluser1
user2=repluser2
user2=repluser3
 
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
|while read files
        do
        /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user1@$host1::$dst1 &&
        /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user2@$host2::$dst2 &&
        /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user3@$host3::$dst3 &&
                echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
      echo "-----------------------------------------------"
        done
 
#chmod 755 rsync.sh
#nohup  /data/shell/rsync.sh  &
 
4、测试
在网页发布节点的/data/web/webroot/目录下增、删、改文件,看服务节点是否与发布节点一致