未知
incremental-backups-tools的Python项目详细描述
与存储无关的增量备份工具,用于创建增量备份实用程序的构建块。
- 使用pyrsync(一个带有sha256散列的纯python rsync实现)来计算patch/diff。
- 依赖于dirtools(对于像exlusion这样的.gitignore,以及它提供的帮助程序)
此项目最初被设计为bakthat增量备份插件的基础,因此实现签名、加密、存储、管理完全/增量备份等功能取决于您。
部件
dirindex
DirIndex表示目录的状态,它包含:
- 文件和子目录的列表
- 对于每个文件,块校验和(来自pyrsync)
每次执行备份(完全备份或增量备份)时,都应存储此索引(使用to_file方法存储,然后使用from_fileclassmethod检索)。 下次执行增量备份时,应使用此索引创建DiffIndex。
差异指数
DiffIndex存储到DirIndex之间的更改。
它包含:
- 已创建、已更新、已删除文件的列表。
- 已删除子目录的列表。
- 包含包含增量的临时文件的列表(由pyrsync提供)
- 最新的DirIndex数据
差异数据
DiffData处理存档创建,它需要以前生成的DiffIndex。
存档(tar.gz)包含两个目录:
- 创建,存储新文件的位置。
- 更新,包含pyrsync三角洲。
所有内容都存储在根目录下,路径的散列作为文件名。
应用差异
要为目录应用/修补diff,需要两件事:存档路径(由DiffData生成)和diff索引数据(由DiffIndex生成)
安装
$ pip install incremental-backups-tools
用法
fromincremental_backups_toolsimportDirIndex,DiffIndex,DiffData,apply_difffromdirtoolsimportDird=Dir('/home/thomas/mydir')DirIndex(d).to_file('/home/thomas/mydir.index')# Store the indexold_dir_index_data=DirIndex.from_file('/home/thomas/mydir.index')# Make some changes in the directorydir_index_data=DirIndex(d).data()diff_index=DiffIndex(dir_index_data,old_dir_index_data).compute()diff_archive=DiffData(diff_index).create_archive('/home/thomas/mydir.diff.tgz')# Reapply these changes from the intial directoryapply_diff('/home/thomas/mydir',diff_index,diff_archive)
许可证(MIT)
版权所有(c)2013 Thomas Sileo
特此免费授予获得本软件副本和相关文档文件(以下简称“软件”)的任何人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售本软件副本的权利,并在符合以下条件的情况下,允许向其提供软件的人员这样做:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
<软件>提供“原样”,无任何担保,明示或默示,包括但不限于适销性、适合特定用途和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。