Lsync 如何从一个源同步到多个目标

个人学习笔记,谢绝转载!!!

原文:https://www.cnblogs.com/wshenjin/p/12504314.html


targets = {
    'rsy_user@127.0.0.1::data1',
    'rsy_user@127.0.0.1::data2',
    'rsy_user@127.0.0.1::data3',
}

for _, target in ipairs( targets )
do
    sync{ 
        default.rsync,
        source  = '/tmp/d/',
        target  = target,
        exclude = { ".*", "*.tmp", "*.bak" , "*.pid"},
        delete  = true,
        rsync   = {
            compress = false,
            archive  = true,
            verbose  = false,
            timeout  = 3600,
            password_file = "/etc/rsync.pass",
        }
    }
end

更复杂点的写法:

targets = {
    'rsy_user@127.0.0.1::data1',
    'rsy_user@127.0.0.1::data2',
    'rsy_user@127.0.0.1::data3',
}

sources = {
    '/aaa/bbb/ccc/',
    '/aa/bb/cc/',
    '/a/b/c/',
}

for _, target in ipairs(targets)
do
    for _, source in ipairs(sources)
    do
        sync{ 
            default.rsync,
            source  = '/tmp/d'..source,
            target  = target..source,
            exclude = { ".*", "*.tmp", "*.bak" , "*.pid"},
            delete  = true,
            rsync   = {
               compress = false,
               archive  = true,
               verbose  = false,
               timeout  = 3600,
               password_file = "/etc/rsync.pass",
            }
        }
    end
end

配置文件里可以用..来实现字符变量等的拼接。

参考:
https://axkibe.github.io/lsyncd/faq/multiple-targets/
https://axkibe.github.io/lsyncd/manual/config/layer1/
https://axkibe.github.io/lsyncd/manual/config/layer4/

posted @   wshenJin  阅读(383)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示