请教:如何实现文件的增量备份

sdsuper 2003-01-15 01:43:06
如题。
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rushman 2003-01-17
  • 打赏
  • 举报
回复
如何设计分划是关键。简单的块文件,可以自然的将块作为单位进行划分,对于文本可以一行作为单元来划分。这要看你需要备份的文件是如何组织的。分划的目的在于使备份(检查是否需要备份)有一个单位,有一个标识可以在备份中指示被修改的部分。
标记是建立在文件的访问是受到控制(或者是监视)的情况下的。可以另外建一个文件来保存这些标记。

如果文件的修改不受监控,标记就没有意义了。这时候,我们可以将文件的修改简化成两种操作:删除/添加。备份时,首先需要从备份中复原原文件,将需要备份的文件和源文件按分化单位进行比较。如果遇到两单元不符,有三种可能,一是删掉了一部分,可以在原文件中向下查找;二是插入了一部分,可以在新文件钟查找;最后是删除了一部分,又插入了一部分,这时候需要逐个进行匹配来查找删除了多少,又插入了什么。
可以看出,这样的效率很低(尤其是第三种情况),即使是为每一个单元用生成类似检查和的办法加快比较速度,也是很麻烦的。所以一般应用增量备份的场合,要么可以监控文件的访问,要么文件尺寸不大,需要查找的两相对较少。
sdsuper 2003-01-17
  • 打赏
  • 举报
回复
rushman(一线天) ( )
请问
1、如何获得文件改变量
2、标记如何设计呢?
rushman 2003-01-17
  • 打赏
  • 举报
回复
将需要备份的文件按照一定的标准,将其划分成多个部分,并标记各个部分的修改/备份状态,备份时将修改过的(尚未备份)的进行增量备份。
sdsuper 2003-01-17
  • 打赏
  • 举报
回复
怎么没有人来看啊。
up~!~!~!~!~!~
bugfree 2003-01-15
  • 打赏
  • 举报
回复
My following is from developer's pointer view. If you are a system administrator, it does not suit for you.

map<string, int> file_map; // the string to store the file name like "/usr/bin/ls", the int is the length of the file. Store all the file info to this map.
If you want to know which file changed, just to compare the file size, then backup it.

The other method(I prepare this):
1. read the last backup time.
2. compare the last update time of the file with the time in step 1
3. If newer, then backup it, else continue
4. redo step 2, 3 for each file.


69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧