zoukankan      html  css  js  c++  java
  • rsync+sersync实现数据文件实时同步

    一.简介

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

    sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

    rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高;

    :当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。

    二.具体操作

    操作系统:centos6.6
    源服务器(sersync):192.168.0.1  --> 目标服务器(rsync):192.168.0.2

    目的:使用root用户,把源服务器上的/test1目录下的文件实时同步到目标服务器的/test2目录下

     
    (一)目标服务器(rsync):192.168.0.2
    1、安装rsync
    yum -y install rsync
    2、创建rsyncd.conf配置文件
    vi /etc/rsyncd.conf
    --------------------------
    uid = root
    gid = root
    max connections = 10
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsyncd.lock
     
    [test]     #模块自定义名称 ---这个需要与源服务器Sersync对应
    path = /test2 #需要同步到这个目录
    comment = Mirror to test
    ignore errors = yes
    use chroot = no  #默认为true,修改为no,增加对目录文件软连接的备份
    read only = no    #设置rsync服务端文件为读写权限
    hosts allow = 192.168.0.1 #允许访问源服务器IP
    hosts deny = 0.0.0.0/32 #拒绝所有IP连接,先允许后拒绝
    exclude =/data1 /data2  不同步的目录
     
    :这里只是列出一些配置项而已,其他在配置时按需选择。
    ------------------------------
    3、启动服务

    /usr/bin/rsync --daemon /etc/rsyncd.conf

    (二)源服务器(sersync):192.168.0.1
    1、安装rsync
    yum -y install rsync
    2、同步数据

    rsync -avzP /test1/ root@192.168.0.2::test/  测试同步文件

    --/test1/ 同步目录
    --192.168.0.2 目的服务器,安装并配置完毕rsync
    --test 模块自定义名称,即目的服务器的rsync配置文件中配置的
    3、安装sersync工具,实时触发rsync进行同步
    #cd /usr/local/src

    #wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz

     
    #tar zxvf sersync2.5_32bit_binary_stable_final.tar.gz
        GNU-Linux-x86/
        GNU-Linux-x86/sersync2
        GNU-Linux-x86/confxml.xml
    #mv /usr/local/src/GNU-Linux-x86/ /usr/local/sersync/
    #vi /usr/local/sersync/confxml.xml
    需要修改如下几个地方:
    <localpath watch="/data/test">
        <!—-设置监控的目录-->
        <remote ip="192.168.0.2" name="test"/>
        <!—设置从服务器的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="root" passwordfile="/etc/rsyncd.secret"/>
        <!—-设置同步的用户名和密码文件-->
        <userDefinedPort start="true" port="873"/><!-- port=874 -->
        <!—-设置rsync的端口,要和从那边开启的端口一致-->
        <timeout start="false" time="100"/><!-- timeout=100 -->
        <ssh start="false"/>
    </rsync>
     
    注:如果目的服务器的rsync有配置账号密码时,这里需要配置/etc/rsyncd.secret
    4、启动sersync

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

  • 相关阅读:
    Java学习第一篇废话写在前面
    使用UI Automation实现自动化测试7.2 (模拟键盘复杂操作在自动化测试中的应用)
    生活随想之 积累经验篇
    赌一把
    重启职业及生存旅途计划
    partial class在自动化测试中的使用
    您们用什么广告平台
    Crazy English 900 Expressions (Android App)
    生存之道
    个税计算器完美终极版
  • 原文地址:https://www.cnblogs.com/gdou123czh/p/5713283.html
Copyright © 2011-2022 走看看