未知

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 Spring WS-EndpointInterceptor   java JDBC连接打开还是关闭?   java如何执行嵌套for循环?   循环Java charAt方法,返回的值甚至不是字符串的一部分   使用同步的java producerconsumer   java Android ServerSocketChannel绑定到环回地址   java如何根据属性将bean与不同的实现连接起来?   java无法自动连接Spring安全实现类   用Java将数组数据写入二进制文件   java如何可以创建一个系统。出来如何防止死锁?   java从字符串中提取两种类型的文本   在Java中使用迭代器收集多个If条件   java如何以编程方式自动回复通知,如WhatsApp、Instagram   java Apache CXF/JAXRS、Felix和Jetty   java XDocReport:XDocConverterException:无法从=ODT中找到转换器   java实例化泛型抽象类的子(具体)类,其构造函数需要其他参数类   系统的java输出。出来格式(“%6f%n”,123.0);不像预期的那样   cucumber中的java未定义步骤