我不想使用 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。是否可以创建动态备份文件后缀?