1 个不稳定版本
0.1.0 | 2019年8月15日 |
---|
#34 in #backup-utility
130KB
3K SLoC
sbak
概述
sbak
是一个基于文件哈希值的简易备份工具。
用法
备份仓库的创建
首先创建备份目标仓库。
$ sbak init repo --path /backup/sbak_repository
将仓库路径写入配置文件中,可以在后续操作中无需显式指定仓库路径。
repository_path = "/backup/sbak_repository"
银行生成
sbak
中,为每个备份目标目录使用一个 Bank。
$ sbak init bank --name sample_home_dir --path /home/sample
Bank 中保存备份的历史和设置。文件实体(对象文件)由同一仓库的多个 Bank 共享。
备份执行
使用 backup
子命令执行备份。
$ sbak backup --bank sample_home_dir
如果没有指定 Bank 名称,则将执行所有 Bank 的备份。
显示历史列表
使用 history
子命令可以显示最近的备份历史列表。
$ sbak history --bank sample_home_dir -n 5
2019-08-15 08:56:43 ba5685d1fc8703221e9c2dd1df3f9d1d5aa7d39b89f18f646479c1e287601224
2019-08-15 12:01:51 8137026f10033c85ffde22b790f63317cb2ed1cdf831d0ed1cc16230bf33a9d6
2019-08-15 12:16:46 3e0559f4b49eaf3c8aa442e9c740e35433f957f75381f836cc4ddbf4dba60115
2019-08-15 12:58:42 852ab268cde218d6d4e9fee1cb1573d61e15feeb7e688b687aa888a74afc940a
2019-08-15 14:20:59 7896920d3d8f38e9073960216d6638e41e04a73ebf1211d67db3225c8836fc6a
目录恢复
使用 restore
子命令可以从历史记录中恢复目录。目前,可以恢复整个备份目标目录。
符号链接被保存,但未展开。使用 --show-symlinks
选项可以输出符号链接的列表。
$ sbak restore --bank sample_home_dir --revision 8137026f --to restored_dir
配置文件
repository_path = 'U:\sbak_repo'
[log]
output = 'stderr'
level = 'info'
全局设置
变量名 | 概述 | 有效值 |
---|---|---|
repository_path | 使用的仓库路径 |
日志设置
变量名 | 概述 | 有效值 |
---|---|---|
output | 日志输出位置 | stderr 、日志文件路径 |
level | 日志级别 | off , error , warn , info , debug , trace |
排除设置文件
将 .gitignore
类似的 .sbakignore
文件放置在目录内,可以防止指定的文件被备份。
许可证
sbak
在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
依赖关系
~6–17MB
~196K SLoC