lsyncd:是否可以同步列表中的单个文件?

lsyncd:是否可以同步列表中的单个文件?

我想使用 lsyncd 将某些文件从一个 Linux 系统同步到另一个 Linux 系统。这些文件并不局限于一个目录,我也不想要一个目录中的所有文件。

具体来说,我试图确保某些邮件服务器文件与备用服务器保持同步。这是一个列表:

/etc/postfix/master.cf /etc/postfix/main.cf /etc/postfix/blocked_senders /etc/postfix/relay_recipients /etc/mail/spamassassin/local.cf

我可以通过某种列表在单个同步节中指定所有这些文件,还是需要在单独的同步节中配置每个单独的文件?

答案1

我建议

--[[
The _extra= hack allows synchronization of individual files. Use one sync {}
stanza per source directory. Use additional --include= lines to handle multiple
files within a single source directory.
]]

sync {
  default.rsync,
  delay = 0,
  source = "/etc/postfix/",
  target = "standby.example.com:/etc/postfix/",
  rsync = {
    _extra = {
      "--include=master.cf",
      "--include=main.cf",
      "--include=blocked_senders",
      "--include=relay_recipients",
      "--exclude=*",
    }
  }
}

sync {
  default.rsync,
  delay = 0,
  source = "/etc/mail/spamassassin/",
  target = "standby.example.com:/etc/mail/spamassassin/",
  rsync = {
    _extra = {
      "--include=local.cf",
      "--exclude=*",
    }
  }
}

我认为每个源目录都需要一个sync {}节,因为lsyncd通过在目录级别建立的触发器有效地检测更改。

答案2

虽然这是一个旧的,但我想把大卫的回应放入“lsyncd”上下文中。示例配置可能如下所示(在我的系统之一上进行了测试和确认):

sync {
   default.rsyncssh,
   source = "/tmp",
   host = "gw2",
   targetdir = "/tmp",
   delete = false,
   rsync = { _extra = { "--files-from=/etc/lsyncd/files.list" } }
}

文件 /etc/lsyncd/files.list 包含您想要与相对于“目标”(此处为 /tmp)的路径同步的文件。

答案3

将它们保存到文件中文件列表

rsync -a --files-from=file_list /source /dest

如果只有这5个文件,那么我认为你还可以使用-c(校验和检查)和-z(压缩)选项。

相关内容