restic:安全高效备份工具仓库初始化、快照与恢复指南
restic 是一个快速、高效、安全的备份程序,支持 Linux、macOS、Windows 及 FreeBSD/OpenBSD。它采用加密、去重、增量设计,可把备份存到本地、SFTP、REST 服务器、S3、Swift、Backblaze B2、Azure Blob、Google Cloud Storage,或通过 rclone 支持更多后端。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/restic/restic |
| 官方文档 | https://restic.readthedocs.io |
| 开源协议 | BSD 2-Clause |
| 主要语言 | Go(99.7%) |
| Star 数 | 37k+ |
二、官方图片
restic 仓库社交预览图:

三、环境要求
- Linux / macOS / Windows;
- 从官方下载预编译二进制即可,无需 Go 环境;
- 一个备份后端(本地目录、SFTP、S3 兼容对象存储等);
- 备份与恢复都只需记住仓库密码。
四、部署步骤
1. 安装
Linux(以 Debian/Ubuntu 为例)可从 https://github.com/restic/restic/releases 下载对应二进制,放到 PATH:
# 示例:解压后移动到 /usr/local/bin
sudo mv restic /usr/local/bin/
restic version
2. 初始化备份仓库
restic init --repo /tmp/backup
按提示输入两次仓库密码。注意:密码丢失则数据无法恢复,请妥善保管。
五、使用方法
备份数据
restic --repo /tmp/backup backup ~/work
完成后会输出一个快照 ID(如 40dc1520 saved)。
列出快照
restic --repo /tmp/backup snapshots
恢复文件
restic --repo /tmp/backup restore <快照ID> --target /恢复目录
挂载仓库浏览(FUSE)
restic --repo /tmp/backup mount /mnt/restic
自动备份脚本
写一个脚本 /usr/local/bin/backup.sh:
#!/bin/bash
export RESTIC_REPOSITORY="/tmp/backup"
export RESTIC_PASSWORD="你的仓库密码"
restic backup /home/user/重要目录
restic forget --keep-daily 7 --keep-weekly 4 --prune
加到 crontab 每天执行:
0 3 * * * /usr/local/bin/backup.sh
支持的后端
本地目录、SFTP、REST 服务器、S3 及 S3 兼容、OpenStack Swift、Backblaze B2、Azure Blob、Google Cloud Storage,以及通过 rclone 支持更多服务。
六、常见问题 FAQ
Q1:restic 是什么? 快速、高效、安全的备份程序,加密+去重+增量,支持多平台多后端。
Q2:怎么开始?
先 restic init --repo <目录> 建仓库并设密码,再 restic backup <目录>。
Q3:密码丢了怎么办? 密码丢失意味着数据不可恢复,请务必备份好密码。
Q4:怎么恢复?
restic restore <快照ID> --target <目录>,或 restic mount 用 FUSE 浏览历史版本。
Q5:支持哪些存储后端? 本地、SFTP、REST、S3、Swift、B2、Azure、GCS,以及通过 rclone 的更多后端。
Q6:怎么做自动备份?
用脚本设置 RESTIC_REPOSITORY 与 RESTIC_PASSWORD,再写 crontab,配合 forget --keep-* --prune 自动清理旧快照。
七、跳转链接
- GitHub 仓库:https://github.com/restic/restic
- 官方文档:https://restic.readthedocs.io
- Releases:https://github.com/restic/restic/releases
- 论坛:https://forum.restic.net