lsyncd无法使用动态备份后缀

时间:2017-03-01 10:56:07

标签: bash lua backup suffix lsyncd

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

-- global settings
settings {
   delay        = 5,
   maxProcesses = 5,
   statusFile   = "<STATUS_FILE_PATH>",
   logfile      = "<LOG_FILE_PATH>",
   insist       = true
}

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

-- execution
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的日期函数,如下所示:

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

它会在不计算值的情况下转换为字符串,从而生成一个名称如下的备份文件:

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

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

1 个答案:

答案 0 :(得分:0)

未经测试。但试试这个

  

- suffix =`date +&#34;%F&#34;`