未知

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

特此免费授予获得本软件副本和相关文档文件(以下简称“软件”)的任何人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售本软件副本的权利,并在符合以下条件的情况下,允许向其提供软件的人员这样做:

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

<软件>提供“原样”,无任何担保,明示或默示,包括但不限于适销性、适合特定用途和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么这个代码段不会产生结果?   在OSGi下使用SnakeYaml的java?   java可扩展列表视图能否移动自定义图标(指示器)?   java如何将文件从html保存为pdf   java如何将字符串转换为长字符串   java使用来自无限输入的原始数据并在设备上播放   通过spring数据使用复合PK集合的java查询(Hibernate JPA)   使用Sax解析器通过按钮单击java解析数据所有按钮返回相同的数据,而不是独占数据   JavaSWT:将shell切换到全屏模式   如果IsRechable抛出Java中的IOException,那么应该采取什么适当的操作?为什么?   java重定向到另一个带有@RequestBody的页面   密码学可以组织起来。弹跳船舱。openssl。PEMReader阅读java。安全私钥?   java MYSQL列中的空值要求为通配符   文件io如何将res文件夹链接到java项目