xinetd+lsyncd+rsync双向同步

服务器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双向同步)