lsyncd 不能使用动态备份后缀

我想使用 lsyncd 创建备份,使用日期/时间字符串作为后缀。 如果我在 lsyncd.conf 文件中使用 lua 设置后缀选项,则日期/时间仅在启动守护程序时计算一次,并且在每次同步迭代时不会更新。 这导致每个修改文件仅创建一个备份文件(具有相同的后缀),而我希望每个文件的每次修改都创建一个新的备份文件。 我使用的配置文件如下:

-- 全局设置
settings {
   delay        = 5,
   maxProcesses = 5,
   statusFile   = "<STATUS_FILE_PATH>",
   logfile      = "<LOG_FILE_PATH>",
   insist       = true
}

-- 目标节点
nodes = {
{ source = "/home/<USER>/sync", target = "<TARGET_IP>:/home/<USER>/sync"},
}

-- 执行
time = os.date("*t")
datetime = (time.year .. time.month .. time.day .. time.hour .. time.min .. time.sec)
for _, node in ipairs(nodes) do
  sync {
    default.rsync,
    source = node.source,
    target = node.target,
    rsync = {
      compress  = true,
      checksum  = true,
      perms     = true,
      rsh       = "/usr/bin/ssh -i /home/<USER>/.ssh/id_dsa -o StrictHostKeyChecking=no",
      times     = true,
      verbose   = true,
      _extra    = { "--backup", "--suffix=" .. datetime },
    }
  }
end

如果我尝试将 bash 的 date 函数传递给后缀选项,就像这样:

_extra = { "--backup", "--suffix=_$(date +\"%Y%m%d%H%M%S\")" },

它会转换为一个字符串,而不计算值,导致备份文件的名称如下所示:

testfile.txt_$(date +"%Y%m%d%H%M%S")

我仅限于使用 lsyncd 的 2.1.4 版本。 是否可以创建动态备份文件后缀?

点赞
用户1979882
用户1979882

没有测试过。但是尝试这个

--suffix=`date +"%F"`

2017-03-01 13:27:27