zoukankan      html  css  js  c++  java
  • rsync 06-sersync文件实时同步

    sersync简介

    • sersync是基于Inotify开发的,类似于Inotify-tools的工具
    • sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字
    • rsync在同步的时候,只同步发生变化的这个文件或者这个目录
    • 当同步的目录数据量不大时,建议使用Rsync+Inotify-tools
    • 当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。

    sersync环境

    • 操作系统:centos6.6
    • 源服务器(sersync):192.168.10.1 --> 目标服务器(rsync):192.168.10.2
    • 目的:使用root用户,把源服务器上的/data目录下的文件实时同步到目标服务器的/data目录下

    目标服务器(192.168.10.2)部署rsync的daemon模式

    [root@rsync ~]# cat /etc/rsyncd.conf 
    uid=root
    gid=root
    max connections = 4
    log file=/var/log/rsyncd.log
    pid file=/var/run/rsyncd.pid
    lock file=/var/run/rsyncd.lock
    ignore errors
    read only = no
    anth users = liang
    secrets file = /etc/rsyncd.passwd
    
    [test]
    path=/data
    

    源服务器(192.168.10.1)安装sersync软件

    1. 上传并解压sersync软件

    [root@sersync ~]# tar -zxvf sersync2.5_32bit_binary_stable_final.tar.gz
        GNU-Linux-x86/
        GNU-Linux-x86/sersync2
        GNU-Linux-x86/confxml.xml
    

    2. 设置工作目录

    [root@sersync ~]# mv GNU-Linux-x86/ /usr/local/sersync/
    

    3.修改配置文件

    [root@sersync ~]# vi /usr/local/sersync/confxml.xml
    [root@centos6]# cat confxml.xml
    ......
        <sersync>
      	<!-- 本地监视目录路径 -->
            <localpath watch=" /data/"> 
    			<!-- 定义同步Server ip和模块 -->
                <remote ip="192.168.10.2" name="test"/>
            </localpath>
    
    		<rsync>
    			<!-- rsync指令参数 -->
                <commonParams params="-artuz"/>
                <!--  rsync同步认证 -->
                <auth start="true" users="liang" passwordfile="/etc/rsyncd.password"/>
                <!-- 设置rsync远程服务端口,非默认端口需要打开自定义(若开启rsync+ssh, 则这里需定义SSH端口) -->
                <userDefinedPort start="false" port="873"/>
    			<!-- 设置超时时间 -->
                <timeout start="ture" time="100"/>
    			<!-- 设置rsync+ssh加密传输模式,默认关闭,开启需设置SSH加密证书 -->
                <ssh start="false"/>
            </rsync>
    
    		<!-- sersync传输失败日志脚本路径,每隔60会重新执行该脚本,执行完毕会自动清空。 -->
            <failLog path="/usr/local/sersync/logs/rsync_fail_log.sh" timeToExecute="60"/>
    ......
    

    4.启动sersync进程

    [root@sersync ~]# /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml
    

    5.查看sersync进程

    [root@sersync ~]# ps -ef |grep sersync
    

    6.查看sersync帮助

    [root@sersync ~]# sersync2 -help
    参数-d:启用守护进程模式
    
    参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
    
    参数-n: 指定开启守护线程的数量,默认为10个
    
    参数-o:指定配置文件,默认使用confxml.xml文件
    
    参数-m:单独启用其他模块
        使用 -m refreshCDN 开启刷新CDN模块
        使用 -m socket 开启socket模块
        使用 -m http 开启http模块
        不加-m参数,则默认执行同步程序
    
  • 相关阅读:
    根据百度API获得经纬度,然后根据经纬度在获得城市信息
    Map实现java缓存机制的简单实例
    JMS学习(七)-ActiveMQ消息的持久存储方式之KahaDB存储
    JMS学习(六)-ActiveMQ的高可用性实现
    排列与组合的一些定理
    带权图的最短路径算法(Dijkstra)实现
    JMS学习(六)--提高非持久订阅者的可靠性 以及 订阅恢复策略
    JMS学习(五)--ActiveMQ中的消息的持久化和非持久化 以及 持久订阅者 和 非持久订阅者之间的区别与联系
    分布式系统理论之两阶段提交协议
    自定义栈的实现及使用两个栈模拟队列
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/9759120.html
Copyright © 2011-2022 走看看