restic · 快速高效安全的备份程序 · 中文部署与使用全指南
项目仓库: https://github.com/restic/restic
开源协议:BSD 2-Clause · 实现语言:Go · 平台:Linux / macOS / Windows / FreeBSD / OpenBSD · 形态:单二进制 CLI · 无网络端口 · 后端:本地 / sftp / REST / S3 / Swift / B2 / Azure / GCS / rclone
说明:restic 官方 README 未提供 logo 或界面截图,按规程本篇不设封面、正文不强配图。
1 项目简介
restic(仓库名
restic/restic)是一个快速、高效、安全的备份程序:在
Linux / macOS / Windows(及
FreeBSD、OpenBSD)上做加密备份,支持多种后端存储。它的核心设计原则是——简单、快、可校验、安全、高效。
说明:restic 是命令行工具,没有服务端、不监听端口;备份数据默认加密,且假设存储后端是不可信环境(共享空间、云盘管理员),数据加密在本地完成。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | restic |
| 仓库地址 | github.com/restic/restic |
| 项目定位 | 跨平台加密备份与恢复程序 |
| 开源协议 | BSD 2-Clause |
| 实现语言 | Go |
| 平台 | Linux / macOS / Windows / FreeBSD / OpenBSD |
| 形态 | 单二进制 CLI |
| 加密 | 客户端加密,防篡改 / 防窃听 |
| 后端 | 本地 / sftp / REST / S3 / Swift / B2 / Azure / GCS / rclone |
1.2 适用场景
- 想把文件增量备份到本地、另一台机器(sftp)、对象存储(S3 / B2 / Azure / GCS)。
- 要求备份数据加密后再上传,不信任后端。
- 想要去重增量、可校验恢复的备份方案。
1.3 能力边界(官方口径)
- 设计原则:备份要快、恢复要简单、要能验证数据可恢复、要安全、增量要去重。
- 密码即一切:仓库密码丢失意味着数据不可恢复(官方明确警告)。
2 功能特性
- 多后端:本地目录、sftp(SSH)、HTTP REST 服务器、Amazon S3(及兼容)、OpenStack Swift、BackBlaze B2、Azure Blob、Google Cloud Storage,以及通过 rclone 接更多服务。
- 加密:客户端加密,保证机密性与完整性。
- 增量 + 去重:后续快照只存真实增量,重复数据先去重再写后端。
- 可校验:
restic check验证数据可恢复;restic mount通过 FUSE 浏览历史快照。 - 可复现构建:0.6.1 起的发布二进制可字节级复现。
3 官方界面预览
restic 是纯命令行工具,无图形界面,按规程不配图。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/restic/restic | 源码与 README |
| 官方文档 | restic.readthedocs.io | 安装、用法、后端 |
| 安装指南 | 020_installation | 各平台安装 |
| 准备新仓库 | 030_preparing_a_new_repo | 后端配置 |
| 论坛 | forum.restic.net | 问答 |
| rest-server | github.com/restic/rest-server | 官方 HTTP 后端 |
5 前置要求
- 安装 restic 二进制(见文档安装页)。
- 准备好后端:本地路径、sftp 账号、或对象存储凭据。
- 选一个强密码——它是唯一的加密密钥。
6 方式一:快速开始(本地仓库)
# 1. 初始化仓库(会要求输入密码)
restic init --repo /tmp/backup
# 2. 备份目录
restic --repo /tmp/backup backup ~/work
# 3. 恢复或浏览
restic restore --repo /tmp/backup <快照ID> --target /目标目录
restic mount --repo /tmp/backup /mnt/restic # FUSE 浏览历史官方示例输出:
$ restic --repo /tmp/backup backup ~/work
scan [/home/user/work]
scanned 764 directories, 1816 files
[0:29] 100.00% 54.732 MiB/s 1.582 GiB / 1.582 GiB 2580 / 2580 items 0 errors
snapshot 40dc1520 saved7 方式二:对象存储后端
# S3 兼容(以 AWS S3 为例,其他 S3 兼容同理)
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
restic -r s3:s3.amazonaws.com/bucket_name init
restic -r s3:s3.amazonaws.com/bucket_name backup ~/work
# 通过 rclone 接更多服务
restic -r rclone:remote:path backup ~/work详细各后端配置见官方文档
030_preparing_a_new_repo.html。
8 配置项说明
- 仓库位置:
-r / --repo指定。 - 密码:交互式输入,或用
RESTIC_PASSWORD环境变量 /--password-file。 - 后端凭据:通过环境变量(如
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)传入。
9 常用运维命令
restic snapshots # 列快照
restic check # 校验数据可恢复
restic forget --prune ... # 按策略清理旧快照
restic stats # 仓库用量统计10 常见故障排查
- 忘了密码:官方明确——密码丢失数据不可恢复,只能重初始化。
- 后端连不上:检查网络、凭据(环境变量)、后端类型前缀(
s3:/rclone:/sftp:)。 - 恢复慢:restic
只传输需要恢复的文件所需数据;
restic mount可先浏览确认要恢复哪些。 - 增量没生效:确认用同一个
--repo,restic 自动去重增量。
11 风险与合规说明
- BSD-2-Clause 许可;备份密码即唯一密钥,务必离线安全保管。
- 备份在本地加密后才上传,假设后端不可信;但仍要定期演练恢复——备份不等于恢复,
restic check定期跑。 - 本文命令来自官方 README 与文档,随版本可能调整,以 restic.readthedocs.io 为准。