Linux:使用 lsyncd 在多个服务器上同步多个文件夹

我在我的主服务器上运行 lsyncd,以同步所有服务器上的文件。但是,当我添加另一个要同步的文件夹时,服务将无法再次启动。我似乎在日志中找不到任何错误。我不是 Lua 专家,所以可能会错过一些明显的东西。

这是我的原始脚本,它有效:

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    statusInterval = 10
}

servers = {
 "user@xx.xx.xx.xx",
 "user@xx.xx.xx.xx"
}

for _, server in ipairs(servers) do
sync {
    default.rsyncssh,
    source="/path/to/source/folder/one",
    host=server,
    targetdir="/path/to/target/folder/one",
    excludeFrom="/etc/lsyncd/lsyncd-excludes.txt",
    rsync = {
        compress = true,
        archive = true,
        verbose = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
    }
}
end

这是不起作用的脚本,我添加了另一个文件夹:

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    statusInterval = 10
}

servers = {
 "user@xx.xx.xx.xx",
 "user@xx.xx.xx.xx"
}

for _, server in ipairs(servers) do
sync {
    default.rsyncssh,
    source="/path/to/source/folder/one",
    host=server,
    targetdir="/path/to/target/folder/one",
    excludeFrom="/etc/lsyncd/lsyncd-excludes.txt",
    rsync = {
        compress = true,
        archive = true,
        verbose = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
    }
}

sync {
    default.rsyncssh,
    source="/path/to/source/folder/two",
    host=server,
    targetdir="/path/to/target/folder/two",
    excludeFrom="/etc/lsyncd/lsyncd-excludes.txt",
    rsync = {
        compress = true,
        archive = true,
        verbose = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
    }
}
end

我还尝试将它们放在两个不同的循环中,但还是没有运气。花了几个小时在互联网上寻找答案,但我发现的所有东西都指向我正确地做了这件事。

点赞
用户16608407
用户16608407

我不知道你或其他人是否遇到了同样的问题,但你是否尝试将第二个同步字段包含到第一个中?

即将第二次同步嵌套在第一次同步中:sync { ... sync { ... } }

至少这就是我使用多个目录使其正常工作的方法。

2021-08-06 15:02:06