1 个不稳定版本

0.1.0 2019年8月15日

#34 in #backup-utility

MIT/Apache

130KB
3K SLoC

sbak

sbak at crates.io sbak at docs.rs

概述

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)的条款下分发。

LICENSE-APACHELICENSE-MIT

依赖关系

~6–17MB
~196K SLoC