设为首页 收藏本站
查看: 313|回复: 0

[经验分享] sersync2+rsync实现数据同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-9 09:28:58 | 显示全部楼层 |阅读模式
单向同步软件

rsync一般是server到client

sersync一般是client到server,sersync可以做到实时监控

sersync+rsync一般是多台服务器之间

双向同步:

unison


sersync监控源系统文件变化,rsync实时同步,没有变化则不同步。

sersync是基于Inotify开发的,类似于Inotify-tools工具


配置:

被同步(目标)服务器:

yum -y install rsync    安装rsync

systemctl enable rsync    将rsync加入到服务启动项

vi  /etc/rsyncd.conf

uid=root                                                  gid/uid要是服务器的相应用户,对目标路径具有操作权限
gid=root
max connections=36000
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock


【CP-apache03】                                                            添加同步模块[CP-apache03]
path=/opt/tongbu                                                           指定同步过来的文件的存放路径
comment = xoyo video files
ignore errors = yes
read only = no
hosts allow = 192.168.8.40/26 192.168.138.94/24                        指定源服务器的ip,可以是多个
hosts deny = *

systemctl start rsync    启动rsync

    如果之前已启动rsync服务,则需要先killall rsync/kill pid,在如上启动

PS:并且rsync要有被同步目录的操作权限,注意权限


同步源服务器(数据源):

安装sersync2,在yum安装源没有sersync2,下载源码包安装

wget https://sersync.googlecode.com/f ... stable_final.tar.gz

tar zxvf sersync2.5.tar.gz

cd sersync

vim confxml.xml

<sersync>

  <localpath watch="/opt/tongbu">

   <remote ip="192.168.8.42" name="tongbu"/>

   <remote ip="192.168.8.39" name="tongbu"/>

  </localpath>

  <crontab start="true" schedule="30"/>

  <plugin name="refreshCDN" start="true"/>

</sersync>

    只需要修改,添加相应的被同步服务器的ip。

systemctl enable sersync2.service    将sersync添加到系统服务启动项

systemctl start sersync2.service    启动sersync2服务


/opt/GNU-Linux-x86/sersync2 -r -o /opt/GNU-Linux-x86/confxml.xml

        配置完成,先做一次整体同步 (-r),(-o 指定配置文件confxml.xml)

/opt/GNU-Linux-x86/sersync2 -r -d -o /opt/GNU-Linux-x86/confxml.xml

        之后守护进程模式启动sersync2 (-d)


同步是否成功:

    查看被同步目标服务器的日志:tail /var/log/rsyncd.log


参数说明:

/opt/GNU-Linux-x86/sersync2 -r    进行一次整体同步

/opt/GNU-Linux-x86/sersync2 -d    进程守护模式,后台实时同步

/opt/GNU-Linux-x86/sersync2 -o    指定配置文件

/opt/GNU-Linux-x86/sersync2 -n num    指定默认的线程池的线程总数



sersync2配置文件confxml.xml详解
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
    <host hostip="localhost" port="9090"></host>
    <debug start="false"/>
    <fileSystem xfs="false"/>
    <filter start="true">
     <exclude expression="^((?!original\.).*)$"></exclude>   
                    #只备份源里面文件名是original开头的,后缀名不限定的文件,?!original 代表反向选择
     <!-- <exclude expression="abc"></exclude>
     <exclude expression="image"></exclude>
     <exclude expression="txt"></exclude>
     <exclude expression="xml"></exclude>
     <exclude expression="*"></exclude>
     -->
    </filter>
    <inotify>
     <delete start="false"/>                    #不监控文件或目录的删除
     <createFolder start="true"/>        #监控目录的创建
     <modify start="true"/>                    #监控文件的修改
     <createFile start="true"/>               #监控创建新文件
     <closeWrite start="false"/>
     <moveFrom start="false"/>
     <moveTo start="false"/>
     <attrib start="false"/>
    </inotify>

    <sersync>
     <localpath watch="/data/bookfm/doc/book">   #设置监控的目录
         <remote ip="192.168.100.250" name="book"/>  
                                                     
#指定目标主机的IP地址和模块名(和samba的类似,不是目录的名称)
                                                   
#有几台目标主机,配置这样几条,同时也要在目标上启用rsync守护进程
         <!--<remote ip="192.168.8.39" name="tongbu"/>-->
         <!--<remote ip="192.168.8.40" name="tongbu"/>-->
     </localpath>
     <rsync>
         <commonParams params="-au"/>   #指定rsync 运行时的参数,可根据自身需要更改
         <auth start="true" users="bookbackup" passwordfile="/usr/local/GNU-Linux-x86/rsyncd.secrets"/>
       #启用验证,指定用户名和密码文件(只用写一个密码即可)
       #用户名是目标服务器上rsync配置文件中指定的用户名,密码文件中的密码也目标服务器上rsync指定的密码文件指定的密码
         <userDefinedPort start="false" port="874"/><!-- port=874 -->
         <timeout start="false" time="100"/><!-- timeout=100 -->
         <ssh start="false"/>
     </rsync>
     <failLog path="/var/rsync/rsync_error.log" timeToExecute="60"/><!--default every 60mins execute once-->
                                                                                                         #指定错误的日志文件路径
     <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>

    <plugin name="command">
     <param prefix="/bin/sh" suffix="" ignoreError="true"/>     <!--prefix /opt/tongbu/mmm.sh suffix-->
     <filter start="false">
         <include expression="(.*)\.php"/>
         <include expression="(.*)\.sh"/>
     </filter>
    </plugin>

    <plugin name="socket">
     <localpath watch="/opt/tongbu">
         <deshost ip="192.168.138.20" port="8009"/>
     </localpath>
    </plugin>
    <plugin name="refreshCDN">
     <localpath watch="/data0/htdocs/cms.xoyo.com/site/">
         <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
         <sendurl base="http://pic.xoyo.com/cms"/>
         <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
     </localpath>
    </plugin>
</head>
配置文件一般根据自己需要修改

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-111294-1-1.html 上篇帖子: Linux shell脚本的字符串截取 下篇帖子: 【Red Hat linux】quota软件磁盘配额管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表