rsync 数据同步和sersync数据实时同步服务器
基于三台服务器,部署数据实时同步服务器,一台作为主服务器sersync(推送数据),其余两台作为备用服务器rsync(拉取数据)。
rsync 数据同步
环境:
服务器:172.20.26.167
服务器:172.20.26.198
服务器:172.20.26.24
实现有权限的地址可同步
两台服务器均需安装有rsync服务。
在172.20.26.198上检查是否有安装rsync 服务
root@localhost \~\]# rpm -qc rsync #查询rsync服务的配置文件 未安装软件包 rsync \[root@localhost \~\]# yum install rsync -y  \[root@localhost \~\]# rpm -qc rsync #查询rsync 服务的配置文件 /etc/rsyncd.conf /etc/sysconfig/rsyncd \[root@localhost \~\]# vim /etc/rsyncd.conf #守护模式的配置文件rsyncd.conf,在后台运行的进程,不影响前端的shell  把光标移动到uid行首,ctrl+v 进入可视化模式,按向右键,再按向下键,再按x键,去掉#号注释,保留有效参数 修改相关配置参数: uid = root rsync #进程管理用户 gid = root rsync #进程管理用户 use chroot = yes #安全设置,限制软连接,如果设置为no,则文件同步到远程服务器后,会在链接文件前面增加一个目录,使链接文件失效,设置为yes则表示不加目录。 max connections = 10 #最大链接数 ignore nonreadable = yes #忽略不可读的错误 read only = false #关闭只读权限 hosts allow = 172.20.26.24 #允许同步的服务器 hosts deny = \* #不允许同步的服务器,\* 代表所有 auth users = rsync #创建同步时使用的虚拟用户 secrets file = /etc/rsync.passwd #将密码写入rsync.passwd 文件,使用该虚拟用户同时时不需要再输入密码 编辑【web】模块、【sql】模块 \[web
path = /data/web
comment = nginx data backup
sql
path = /data/sql
comment = sql data backup

root@localhost \~\]# systemctl start rsyncd
\[root@localhost \~\]# systemctl status rsyncd

创建配置文件设置的目录路径
\[root@localhost \~\]# mkdir -p /data/web
\[root@localhost \~\]# ls
anaconda-ks.cfg
\[root@localhost \~\]# mkdir -p /data/sql
\[root@localhost \~\]# ls
anaconda-ks.cfg
\[root@localhost \~\]#
\[root@localhost /\]# cp /etc/fstab /data/web #将/etc/fstab 文件拷贝到/data/web 目录下

在172.20.26.24服务器上也安装rsync 服务

\[root@bogon \~\]# systemctl start rsyncd #启动rsync服务
从172.20.26.198服务器上拉取web 模块中的文件到当前目录下
\[root@bogon \~\]# rsync -av 172.20.26.198::web .

也可以将本机上的文件(/etc/passwd)推送给172.20.26.198上的web模块里,因在172.20.26.198上的rsync.conf文件中配置了"read only = false 关闭只读权限",否则会报错。

在172.20.26.198上查询推送过来的passwd文件

如果需要开启认证的话,需要定义虚拟用户和密码,配置到rsync.conf 文件中
\[root@localhost /\]# vim /etc/rsyncd.conf

如果使用的用户名和密码一样,可以写在全局里,也可以写到模块里,如果不一样,分别写到自己的模块里即可。

\[root@localhost /\]# echo "rsync:123456" \>/etc/rsync.passwd
\[root@localhost /\]# chmod 600 /etc/rsync.passwd #修改rsync.passwd 文件的权限,其他人和组不可读写

重启rsync 服务
\[root@localhost /\]# systemctl restart rsyncd
\[root@bogon \~\]# rsync -av /etc/yum.conf [[email protected]::web](mailto:[email protected]::web)
输入rsync 的密码 123456

在172.20.26.198上查询/data/web 目录下已经有yum.conf 文件

也可以将密码写进文件里,使用这个用户同步数据时不再需要输入密码。
\[root@bogon \~\]# echo "123456" \> /etc/rsync.passwd #将密码写入rsync.passwd 文件中
\[root@bogon \~\]# chmod 600 /etc/rsync.passwd #取消其他人和组对rsync.passwd 文件读取权限

\[root@bogon \~\]# rsync -av /etc/virc [email protected]::web --password-file=/etc/rsync.passwd

在172.20.26.198上查询/data/web 目录下已经有virc 文件。

也可以设置允许某些服务器连接同步,拒绝其他的服务器连接同步。
目前172.20.26.167 服务器是可以将文件推送到172.20.26.198服务器上的,而我们可以设置只允许172.20.26.24 连接同步,拒绝172.20.26.167连接同步。

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

\[root@localhost \~\]# systemctl restart rsyncd
在172.20.26.167上推送sysctl.conf文件到172.20.26.198上,被拒绝
\[root@bogon \~\]# rsync -av /etc/sysctl.conf [email protected]::web

我们修改172.20.26.198上的/etc/rsyncd.conf文件,把172.20.26.167 写到允许的hosts 里,即可让172.20.26.167也能向172.20.26.198服务器推送文件
\[root@localhost \~\]# vim /etc/rsyncd.conf

保存退出,重启rsync服务
\[root@localhost \~\]# systemctl restart rsyncd
回到172.20.27.167服务器上执行rsync命令,
\[root@bogon \~\]# rsync -av /etc/sysctl.conf [email protected]::web

将syssctl.conf 推送到172.20.26.198服务器上的web模块中

我们在/etc/rsyncd.conf 里也配置了sql 模块,也创建了/data/sql 目录,我们也可以用这个模块进行实验。
rsync -av /etc/virc [email protected]::sql --password-file=/etc/rsync.passwd


**sersync** **实时数据同步**
环境:
sersync服务器:172.20.26.24 配置sersync 把数据推给167、198
rsync服务器:172.20.26.167、172.20.26.198 配置rsync 接收数据
先在172.20.26.24服务器上配置sersync 服务
\[root@bogon \~\]# cd /usr/src
\[root@bogon src\]# rz
将sersync2.5.4_64bit_binary_stable_final.tar上传到172.20.26.24上,配置sersync服务

\[root@bogon src\]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
将解压出来的GNU-Linux-x86目录移到/usr/local/sersync
\[root@bogon src\]# mv GNU-Linux-x86/ /usr/local/sersync
\[root@bogon src\]# cd /usr/local/sersync
\[root@bogon sersync\]# ls
confxml.xml sersync2

/usr/local/sersync下只有confxml.xml、sersync2两个文件,一个是配置文件、一个可执行文件
\[root@bogon sersync\]# vim /usr/local/sersync/confxml.xml
将\