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

时间:2019-10-24 12:36:42

标签: linux ubuntu lua rsync 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

我也尝试过将它们置于两个不同的循环中,但还是没有运气。花了几个小时在互联网上搜寻答案,但是我发现的所有内容都表明我做得正确。

1 个答案:

答案 0 :(得分:0)

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

即将第二个同步包含在第一个中:sync { ... sync { ... } }

至少我是这样处理多个目录的。