Closed z0z0r4 closed 1 year ago
- “定时清理”不是一个好的选择,试试“占用空间太大时清理”或者“备份数量过多时清理”。
- 清理或重置时应允许用户保留最后几个备份,避免意外
emm,但我这所有备份的文件就一份,不会重复...
如果我保留了任意一个备份,那基本上就意味着没清理qeq
占用过大时倒确实,我下个功能加;备份数量与备份文件大小在这里是不对应的
具体备份多少次后才会有两个全量备份的大小,我不清楚...没有测试过,这取决于服务器活跃程度
你这不是差异备份吗?“保留最后几个备份”就是把之前的都合并成一个全量备份啊。你这只支持一个根备份 不能多节点?
即使不能多节点,把之前的都合并留最后几个一样能腾出空间啊
不是,得当git理解,用 hash 做索引,不存在全量备份、根备份这个概念...
假设有待备份文件夹
root/
cache/
server.jar
每次备份先扫一遍文件夹,读 md5,如果已有则不备份文件,无则备份 然后给备份点建个文件树存进 JSON,文件对应 md5
{
"backup_uuid": "00b2e5",
"backup_time": "2023-08-11 08:51:20",
"backup_size": 64586210,
"backup_files": {
"world": {
"type": "dir",
"size": 64586210,
"files": {
"cache": {
"type": "dir",
"files": {
"server.jar": {
"type": "file",
"md5": "08b8d28f99b1053f4474666654d508c2",
"mtime": 1691715078.6658041,
"size": 461
}
}
}
}
}
}
}
这样如果没改动文件就直接存个树然后没了
回档就读一遍备份点信息,对着 md5 挨个拷贝过去
删除备份点就删除那个文件树,如果里面提及的 hash 没有再被其他备份点引用了的话就删了
v1.0.7 finished