美文网首页
xinetd+lsyncd+rsync双向同步

xinetd+lsyncd+rsync双向同步

作者: paw丸 | 来源:发表于2016-11-23 17:21 被阅读0次
    服务器name->ip
      drbd1: 192.168.171.136
      drbd2: 192.168.171.135
    
    1. apt-get安装三个软件 xinetdlsyncdrsync,配置好ssh免密钥登录
    2. root@drbd2# vi /etc/rsyncd.conf
    [diskb]                           --> 名字标识,用于rsync命令冒号后面
    path = /mnt/diskb                 --> 目录的路径
    list = true                       --> 列出服务器上提供同步数据的目录,默认是yes,为了安全建议no
    uid = root                        --> 运行命令的用户,默认是nobody,如果系统不存在这个用户,会出错
    gid = root                        --> 运行命令的用户组,默认是nobody,如果系统不存在这个用户,会出错
    read only = false                 --> 只读选项,意思是不让客户端上传文件到服务器
    hosts allow = 192.168.171.136     --> 允许这个ip访问,通常与hosts deny配合使用
    hosts deny = *                    --> 禁止除允许列表中的所有地址的访问
    
    1. root@drbd2# vi /etc/xinetd.d/rsync
    service rsync
    {
       disable         = no
       socket_type     = stream
       wait            = no
       user            = root
       server          = /usr/bin/rsync
       server_args     = --daemon
       log_on_failure  += USERID
    }
    
    1. root@drbd2# service xinetd restart 重启xinetd服务之后,在drbd1上用命令测试一下
    2. root@drbd1# rsync -avz --delete /mnt/diskb/ 192.168.171.135::diskb #测试命令,如果能够同步成功,就往下走,否则检查一下配置,直到成功
    命令解析:
    a:--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
    v:--verbose 详细模式输出
    z:--compress 对备份的文件在传输时进行压缩处理
    ---其他的参数---
    u:--update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
    q:--quiet 精简输出模式
    --delete 删除那些DST中SRC没有的文件
    

    更多参数配置

    1. root@drbd1# vi /etc/lsyncd.conf
    settings {
        logfile      ="/tmp/lsyncd.log",        --> 日志文件路径
        statusFile   ="/tmp/lsyncd.status",     --> 状态文件路径
        inotifyMode  = "CloseWrite",            --> 在文件结束写之后同步,也可以写Modify
        maxProcesses = 7,                       --> 同时进程最大个数
    }
      
    sync {
        default.rsync,                            --> 同步模式,有rsync、rsyncssh、direct三种
        source    = "/mnt/diskb",                 --> 监听的目录
        target    = "192.168.171.135::diskb",     --> 也可以写为服务端地址以及rsync的名字标识
        delete    = "running",       --> 为了保持target与souce完全同步,Lsyncd默认会delete = true来允许同步删除
        delay     = 5,               --> 累计事件,等待rsync同步延时时间,即5秒内,对同一文件的修改只同步一次
        rsync     = {                             --> rsync参数
            binary    = "/usr/bin/rsync",     
            archive   = true,     
            compress  = true,                     --> 开启压缩
            verbose   = true
        }
    }
    

    更多参数配置

    1. root@drbd1# lsyncd -log all /etc/lsyncd.conf 启动进程
    2. root@drbd1# vi /etc/rc.localexit 0之前,加入lsyncd -log all /etc/lsyncd.conf,完成开机自动执行
    3. 至此配置好了一半:即drbd1的目录/mnt/diskb中的任意修改都会同步到drbd2/mnt/diskb中,如果要实现另一半操作,交换主从,再配置一遍即可
    4. 单个文件的同步的配置:/etc/rsyncd.conf片段:
    sync {
        default.rsync,
        source    = "/tmp",
        target    = "drbd2::html",
        delete    = "running",
        delay     = 5,
        rsync     = {
            binary    = "/usr/bin/rsync",
            archive   = true,
            compress  = true,
            verbose   = true,
            _extra = {"--include-from=/etc/lsyncd.include", "--exclude=*"}
        }
    }
    --> _extra 参数是执行rsync命令时,不修改直接带上的参数。
    --> 2.1.*版本之前有rsyncOps={"--include-from=/etc/lsyncd.include","--exclude=*"}的写法,现在被_extra替代
    
    1. 包含文件/etc/lsyncd.include
    single.file
    test.file
    

    其他要包含的文件,每个占一行

    相关文章

      网友评论

          本文标题:xinetd+lsyncd+rsync双向同步

          本文链接:https://www.haomeiwen.com/subject/uwyvpttx.html