rsync+sersync 数据同步实例

在业务Linux服务器中有大量的非结构化文档需要备份的情况,,,如果定期去备份,源服务器出现问题,两个备份时间之间产生的数据就会丢失。所以需要一种源服务器中文件发生改变就能差量备份的工具。rsync+sersync就很适合。
实例:
A服务器:192.168.21.17 centos7 产生源数据的服务器
B服务器:192.168.21.21 centos7 备份服务器

firewalld selinux 先关闭

首先安装rsync服务。(AB服务器都需要安装)

yum install -y rsync     #安装rsync
systemctl enable rsyncd   #开机启动

B服务器(备份服务器)

mkdir /backup   #创建一个备份路径,也就是备份数据存放的目录
echo 'rsync_backup:123456' > /etc/rsync.password   #创建一个密码文件,用于A服务器推送数据到此服务器的密码验证
chmod 600 /etc/rsync.password   #赋予可执行权限
vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
#disable = no
#fake super = yes
max connections = 200
timeout = 300
pid file=/var/run/rsyncd.pid
#lock file=/var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]  #这个地方要注意,后面sersync会使用这个【】中的标识
path = /backup
#comment = backup export area
ignore errors
read only = false
list = false
hosts allow = *
#host deny = 0.0.0.0/0
auth users = rsync_backup
secrets file = /etc/rsync.password

验证:

systemctl start rsyncd    #启动rsyncd服务
netstat -antpu |grep 873   
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      1144/rsync

A服务器(产生源数据的服务器):
在A服务器上面创建rsync客户端的密码文件

echo '123456' > /etc/rsync.password   #这里的123456就是B服务器上创建的密码,,,在这里不用添加用户
systemctl start rsyncd    #启动rsyncd服务 

假如需要备份此A服务器的 /backup 目录。
初步的手动测试,在A服务器上运行:

rsync -avzPh --delete /backup/ rsync://rsync_backup@192.168.21.21/backup --password-file=/etc/rsync.password

我本机的测试结果是这样的。
在这里插入图片描述
这就说明AB服务器上装的rsync没问题,,B上的rsyncd.conf配置文件参数没问题,密码文件也没问题。

最后一步,在A服务器上部署sersync,,目的是自动化,

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz   #下载
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz  #解压
mv GNU-Linux-x86 /usr/local/sersync  #移动
cd /usr/local/sersync && mkdir conf bin logs  #进入目录,并创建相关目录
mv sersync2 bin/ && mv confxml.xml conf/   #将解压的文件放入对应目录

这算是安装好了,接下来是配置

vi /usr/local/sersync/conf/confxml.xml  #配置xml文件

找到如下内容:

 <sersync>
        <localpath watch="/backup">         #"/backup"需要备份的目录----需要编辑----
            <remote ip="192.168.21.21" name="backup"/>    #"192.168.21.21"为B服务器的IP----需要编辑----
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-artuz"/>
            <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>  #B服务器的auth users用户及密码文件路径
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>
        <failLog path="/usr/local/sersync/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->    #"/usr/local/sersync/log/rsync_fail_log.sh" 这个地址为log地址,,如果有报错也不用管。
        <crontab start="false" schedule="600"><!--600mins-->
            <crontabfilter start="false">
                <exclude expression="*.php"></exclude>
                <exclude expression="info/*"></exclude>
            </crontabfilter>
        </crontab>
        <plugin start="false" name="command"/>
    </sersync>

添加环境变量:

PATH=/usr/local/sersync/bin:$PATH    #临时添加
vi /root/.bashrc   #永久添加
 PATH=/usr/local/sersync/bin:$PATH

最后一步,开启sersync

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

我这边输出如下:
在这里插入图片描述其中无法访问的“rsync_fail_log.sh”不用管他,,,或者自己再研究下。

最后测试,,,,
1、在A服务器的/backup 目录中添加文件,几秒钟之后在B服务器 /backup 目录中查看是否有同步;
2、编辑A服务器的/backup 目录中文本文档内容,几秒钟之后在B服务器 /backup 目录中查看文档内容有无同步。

---------------------------------------完----------------------------------------------------

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值