restic 是一款 go 语言开发的开源文件加密备份工具,特点是能够将文件以快照的形式增量备份到指定的存储设备,支持本地硬盘存储、也支持远程服务器或主流的对象存储。本文参考 Setting up restic with Amazon S3 编写,通过恰当的配置,将 s3 或 s3 兼容的对象存储作为默认的 restic 仓库。

安装 restic

restic 已经被纳入各大主流 Linux 发行版的软件仓库,你可以试着用包管理器搜索/安装 restic,windows 系统可以使用 scoop 进行安装。

也可以直接到项目主页下载对应架构的预编译二进制文件,解压放到系统的可执行路径上并赋予执行权限即可。

可以查阅官方文档获得更详尽的安装说明

准备对象存储

S3、阿里云 OSS、腾讯云 COS、Backblaze B2、Wasabi 这些都可以作为 restic 的存储端。

创建一个 bucket,配置好 access key idsecret access key 即可。

设置环境变量

准备一个足够安全的密码,用于加密 restic 仓库。将环境变量中的值替换成实际的对象存储信息。

$ export RESTIC_REPOSITORY="s3:https://s3.amazonaws.com/restic-demo"
$ export AWS_ACCESS_KEY_ID="AKIAJAJSLTZCAZ4SRI5Q"
$ export AWS_SECRET_ACCESS_KEY="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"
$ export RESTIC_PASSWORD="I9n7G7G0ZpDWA3GOcJbIuwQCGvGUBkU5"

注意:导入环境变量后应清理命令行的历史记录,执行命令 history -c 即可。

初始化 restic 仓库

由于上一步设置了 RESTIC_REPOSITORY 环境变量,即设置了 restic 的默认仓库,因此无需在命令中指定仓库。

$ restic init

备份文件

把当前目录下的 abc.txthello.pdf以及music文件夹备份到仓库。

$ restic backup abc.txt hello.pdf music

查看快照

$ restic snapshots