操作系统:RHEL6.2

内核版本:2.6.32-220.el6.x86_64  (确认是否在2.6.13版本以上)

A系统IP:192.168.5.205

B系统IP:192.168.5.206

A系统里目录/var/www/html/ 实时同步到B系统/var/www/html/

  1. 在B系统安装rsync       下载地址http://pan.baidu.com/s/1gdd4p5D

    [root@B ~]# tar zxvf rsync-3.1.1.tar.gz 

    [root@B ~]# cd rsync-3.1.1

    [root@B rsync-3.1.1]# make && make install

2.在B系统配置rsync

1)创建rsyncd.conf

[root@B ~]# vim /etc/rsyncd.conf 

uid = root

gid = root

use chroot = no

max connections = 0

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[www]                          #定义模块名

path = /var/www/html            #指定数据同步到哪

comment = update                #名称,自定义

ignore errors                     

read only = no

write only = no

hosts allow = 192.168.5.205

list = false

uid = root

gid = root

auth users = backup            #使用用户名backp,与系统用户无关

secrets file = /etc/server.pass #用户名:密码的文件

2)创建server.pass

[root@B ~]# vim /etc/server.pass 

backup:ixdba123                    #用户名:密码 格式

3)启动rsync守护进程,并开机自动启动

[root@B ~]# /usr/local/bin/rsync --daemon

[root@B ~]# ps -ef | grep rsync

root     22700     1  0 11:40 ?        00:00:00 /usr/local/bin/rsync --daemon

[root@B ~]# echo "/usr/local/bin/rsync --daemon" >>/etc/rc.local 

3.在A系统 配置内容发布节点

1)安装rsync

[root@B ~]# tar zxvf rsync-3.1.1.tar.gz 

[root@B ~]# cd rsync-3.1.1

[root@B rsync-3.1.1]# make && make install

2)安装inotify-tool   下载地址http://pan.baidu.com/s/1lgcZO

[root@A ~]# tar zxvf inotify-tools-3.14

[root@A ~]# cd inotify-tools-3.14

[root@A inotify-tools-3.14]# make && make install

查看是否已生成inotifywait和inotifywatch文件

[root@A ~]# ll /usr/local/bin/

total 1392

-rwxr-xr-x. 1 root root   44271 Sep 23 01:26 inotifywait   

-rwxr-xr-x. 1 root root   41361 Sep 23 01:26 inotifywatch

-rwxr-xr-x. 1 root root 1333770 Sep 22 15:46 rsync

3)配置内容发布节点的主要工作是将静态网页实时同步到B系统,这个过程通过shell完成,脚本如下:

[root@A ~]# vim rsync.sh 

 rsync+inotify搭建实时同步系统_第1张图片

注# src=/var/www/html   是A系统要备份的数据路径

    --timeftm:指定时间的输出格式

    --format:指定变化文件的详细信息

    -mrq : m,即monitor表示保持事件监听状态

           r,即recursive表示递归查询目录

            q,打印出监控事件

   -e 即event指定要监控的事件,常见事件有modify,close_write,delete,create,attrib等

    modify 可用 close_write 代替,close_write适用于写入大文件需要一段时间时

给rsync.sh加上x权限

[root@A ~]# chmod  a+x rsync.sh

4)在A系统创建/etc/server.pass       内容密码为ixdba123,与B系统的backup:ixdba123一致

[root@A ~]# vim /etc/server.pass

ixdba123

5)后台启动rsync.sh

[root@A ~]# /root/rsync.sh &

[root@A ~]# ps -ef | grep rsync

root      2274     1  0 13:47 ?        00:00:00 /bin/bash /root/rsync.sh

root      2276  2274  0 13:47 ?        00:00:00 /bin/bash /root/rsync.sh

4.测试在A系统/var/www/html 写入一个文件或目录,是否及时同步到B系统/var/www/html