同步原理:

1.  用户实时的往sersync服务器上写入更新文件数据;

2.  此时需要在源数据服务器上配置sersync服务;

3.  在另一台服务器开启rsync守护进程服务,以同步拉取来自sersync服务器上的数据;

通过rsync的守护进程服务后可以发现,实际上sersync就是监控本地的数据写入或更新事件;然后,在调用rsync客户端的命令,将写入或更新事件对应的文件通过rsync推送到目标服务器

实验需求需要两台主机或更多

安装所需要的服务:yum -y install rsync httpd

编辑配置文件:vim /etc/rsync.conf

uid = root

gid = root

use chroot = yes

max connections = 100    

 #最大连接数 timeout = 600                  

  #超时时间 ignore errors                     #忽略错误

list = false                          #不显示服务端资源列表

address = 192.168.200.111   监听的ip地址

port = 873

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

hosts allow = 192.168.200.0/24

[wwwroot]

        path = /var/www/html

        comment = Document Root os www.crushlinux.com

        read only = no      # 允许读写

        dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z

        auth users = backuper

        secrets file = /etc/rsyncd_users.db

创建账户密码文件设置密码:

vim /etc/rsyncd_users.db

backuper:pwd123

调整权限

chmod 600 /etc/rsyncd_users.db  

chmod 777 /var/www/html/

查看权限:ls -ld /var/www/html/

启动服务并监听

Centos7.5系统 Serync+Rsync数据实时同步数据_Serync


第二台设置免密交互,创建密码文件,指定文件

echo "pwd123" > /etc/server.pass

chmod 600 /etc/server.pass    密码文件必须设置为600权限

rsync -rz --delete --password-file=/etc/server.pass /etc/hosts backuper@192.168.200.111::wwwroot

文件上传成功第一台查看: ls /var/www/html/

#测试这步一定要成功,不然进行不了下一步

部署Serync服务

下载Serync:goodle code地址 : ​​https://code.google.com/archive/p/sersync/downloads

Git Hub 镜像地址 : ​https://github.com/orangle/sersync

tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/        //解压缩文件

cd /usr/local/                                                                                    //切换目录

ls                                                                                                      //查看目录文件

mv GNU-Linux-x86/ sersync                                                               //更改文件名为Serync

cd sersync/                                                                                        //切换目录server

cp confxml.xml confxml.xml.$(date +%F)                                             //备份文件后面加时间.$(date +%F) 

修改文件:vim confxml.xm                                                                  //修改本地目录服务器地址和rsync模块地址

<sersync>        

<localpath watch="/var/www/html">    # 本地同步目录      

<remote ip="192.168.200.111" name="wwwroot"/>   #服务器地址和 rsync模块名  ​

<rsync>         

<commonParams params="-artuz"/>      

<auth start="true" users="backuper" passwordfile="/etc/server.pass"/>              //指定用户名和密码文件

在Serync目录中开启sersync守护进程 同步数据:./sersync2 -d -r -o /usr/local/sersync/confxml.xml

测试同步添加数据: cd /var/www/html/                                                                 //切换目录

ls                                                                                                                         //查看目录文件

mkdir benet                                                                                                         //创建文件benet

cd benet                                                                                                              //切换目录benet

touch {1..5}.txt                                                                                                      //写入数据

ls -l                                                                                                                      //查看数据

查看第一台主机是否同步数据:ls /var/www/html/

                                              ls -l /var/www/html/benet/

重启Serync进程 先杀死进程在启动:cd /usr/local/serync2

                                                     killall serync2

                                                     ./sersync2 -d -r -o /usr/local/sersync/confxml.xml​