1

我不想使用 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")

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

4

1 回答 1

-1

未测试。但是试试这个

--suffix=`日期+“%F”`

于 2017-03-01T13:27:27.643 回答