小白一个,这折腾了一天才搞定lsyncd 实时同步数据。

原因就是网上的教程很多都是基于不同的系统而写的。下面的教程是基于debian而写的。

配置文件都是一样的。配置文件是服务端同时向两台客户端实时同步数据。加注释了方便看



settings {
   logfile    = "/tmp/lsyncd.log",
   statusFile = "/tmp/lsyncd.status",
   insist = true,
   statusInterval = 10
}
//上面的是主配置文件
lsyncd的可选参数:
#############
logfile       : 指定lsyncd工具本身运行所产生的日志文件存放位置
statusFile      : 定义lsyncd监控目录状态文件的存放位置
statusInterval      : 隔多少秒记录一次被监控目录的状态
nodaemon=true       : 默认是不启用守护模式的
inotifyMode      : 指定要监控的事件,如,CloseWrite,Modify,CloseWrite or Modify
maxProcesses        : 指定同步时进程的最大个数
maxDelays      : 当事件被命中累计多少次后才进行一次同步
##########################
sync {
    default.rsyncssh,
    source    = "/home/test1",
    host      = "192.168.1.5",
    targetdir = "/home/test1",
    -- delete="true",
    //默认是先清空客户端目录在同步
    --exclude = { "dir*" },
    //排除的目录
    --excludeFrom = "/etc/rsyncd.d/rsync_exclude.lst",
    -- maxDelays = 5,
    delay = 0,
    -- init = false,
    rsync    = {
        binary = "/usr/bin/rsync",
        archive = true,
        compress = true,
        verbose   = true,
        --extra = {"--bwlimit=2000"},
        },
    ssh      = {
        port  =  22
        }
    }

sync {
    default.rsyncssh,
    source    = "/home/test1",
    host      = "192.168.1.2",
    targetdir = "/home/test1",
    -- delete="true",
    --exclude = { "dir*" },
    --excludeFrom = "/etc/rsyncd.d/rsync_exclude.lst",
    -- maxDelays = 5,
    delay = 0,
    -- init = false,
    rsync    = {
        binary = "/usr/bin/rsync",
        archive = true,
        compress = true,
        verbose   = true,
        --extra = {"--bwlimit=2000"},
        },
    ssh      = {
        port  =  22
        }
    }
###################
一些rsync自带参数:
#######################
default.rsync    : 指定lsyncd运行模式,另外,还有default.direct,default.rsyncssh模式,个人建议缺省
source        : 指定要监控的目录,务必全部用绝对路径
target        : 要同步到的目标目录,一般为rsync服务端模块下指定的目录
init        : 为false时表示只同步lsyncd进程启动以后发生改动事件的文件,否则,反之,默认为true
delay        : 当命中的事件累计到多少时再触发同步
exclude        : 通过此选项排除掉不需要同步的文件,可用它自己的正则进行匹配
delete        : 和rsync 的 --delete 作用一样,先清空再同步
compress    : 压缩后再同步
bwlimit        : 限速同步,当你不想占满带宽时
archive        : 归档模式同步
perms        : 保留文件原有属性同步

#######################


重点来了,启动lsyncd的正确命令是什么?

systemctl start lsyncd

正确的启动lsyncd命令是要指定配置文件的。

lsyncd -log Exec /filename/config/lsyncd.conf

那么问题来了,如果使用密匙登陆服务器,并且有多台服务器怎么办?

简单,看下面代码,已经添加注释

下面的步骤一定要记得,否则会出现rsync255错误

vi ~/.ssh/config



Host 10.11.11.11
User username2
IdentityFile ~/.ssh/test_rsa2

Host 10.10.11.11
User username1
IdentityFile ~/.ssh/test_rsa1

记住如果修改了lsyncd的配置文件记得重启lsyncd进程

标签: rsync, lsyncd

添加新评论