• sersync2 安装,配置


    介绍

    rsync

    rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。

    rsync 包括如下的一些特性:
    能更新整个目录和树和文件系统;
    有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
    对于安装来说,无任何特殊权限要求;
    对于多个文件来说,内部流水线减少文件等待的延时;
    能用rsh、ssh 或直接端口做为传输入端口;
    支持匿名rsync 同步文件,是理想的镜像工具;

    sersync

    sersync利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步。由金山的周洋开发完成,是目前使用较多的文件同步工具之一。该工具和其他的工具相比有如下优点:
    sersync是使用c++编写,由于只同步发生更改的文件,因此比其他同步工具更节约时间、带宽;
    安装方便、配置简单;
    使用多线程进行同步,能够保证多个服务器实时保持同步状态;
    自带出错处理机制,通过失败队列对出错的文件重新出错,如果仍旧失败,则每10个小时对同步失败的文件重新同步;
    自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次;
    自带socket与http协议扩展,你可以方便的进行二次开发

    服务器同步拓扑图

    安装,运行

    slave:

    yum install rsync -y
    
    vim /etc/rsyncd.conf
    uid=root
    gid=root
    max connections=36000
    use chroot= yes
    log file=/var/log/rsyncd.log
    pid file=/var/run/rsyncd.pid
    lock file=/var/run/rsyncd.lock
    
    [www]
    path=/storage/www # 对应master需要同步的目录
    ignore errors = yes
    read only = no
    hosts allow = 192.168.10.6 # master ip
    hosts deny = *
    
    #运行
    rsync --daemon

    master:

    yum install rsync -y

    wget http://sersync.googlecode.com/files/sersync2.5_64bit_binary_stable_final.tar.gz

    tar xzvf sersync2.5_64bit_binary_stable_final.tar.gz

    mv GNU-Linux-x86 /usr/local/sersync

    #sersync 启动参数
    -r     #在监控前 先同步一次目录
    -d     #后台运行
    -o     #指定配置参数
    #运行
    /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml

    配置参数详解

    #confxml.xml
    
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <head version="2.5">
        <host hostip="localhost" port="8008"></host> "本地主机地址"
        <debug start="true"/> "是否开启debug模式"
        <fileSystem xfs="false"/> "是否支持xfs文件系统"
        <filter start="true"> "过滤,是否排除名称中含有指定字符串的文件的同步"
        <exclude expression="(.*).svn*"></exclude>
        </filter>
        <inotify> "本段即是对内核inotify事件的过滤,哪些事件要触发,哪些不要触发"
        <delete start="true"/>
        <createFolder start="true"/>
        <createFile start="false"/>
        <closeWrite start="true"/>
        <moveFrom start="true"/>
        <moveTo start="true"/>
        <attrib start="false"/>
        <modify start="false"/>
        </inotify>
    
        <sersync>
        <localpath watch="/m2odata/www"> "本地需要监控的目录 对应slave配置文件里的目录"
            <remote ip="192.168.10.6" name="www"/>
            <!--remote ip="" name="www"/ --> "支持多个目的端"
        </localpath>
        <rsync> "sersync调用rsync时的参数配置端"
            <commonParams params="-artuz"/>
            <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>
        "指定如果同步失败 记录日志到哪个文件 以便在60分钟后尝试重传"
        <failLog path="/usr/local/sersync/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
        <crontab start="true" schedule="600"><!--600mins--> "指定多长间隔执行一次完整同步"
            <crontabfilter start="true"> "过滤"
            <exclude expression="(.*).svn*"></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>
  • 相关阅读:
    CVPR2020论文解读:3D Object Detection三维目标检测
    CVPR2020论文介绍: 3D 目标检测高效算法
    自动驾驶感知系统盘点
    CVPR2020论文解析:实例分割算法
    HttpContext
    c# ExecuteScalar()
    C#中DBNull.Value和Null的用法和区别
    Guid
    CommandType.Text
    数据可视化基础专题(三):Pandas基础(二) csv导入与导出
  • 原文地址:https://www.cnblogs.com/metasequoia/p/5081258.html
Copyright © 2020-2023  润新知