跨平台备份工具Restic

Restic 使用笔记

0. Restic 简介

Restic 是一个开源的备份工具,特点如下:

  • 支持 多种存储后端:本地磁盘、SFTP、AWS S3、Backblaze B2 等
  • 数据备份采用 去重和加密,确保备份高效且安全
  • 跨平台支持 Linux、macOS、Windows
  • 类似 Git 的快照管理,可轻松查看、恢复或删除备份

Restic 的基本概念:

  • Repository(仓库):存储备份数据的地方
  • Snapshot(快照):某一时刻的数据备份记录
  • Tag(标签):为快照添加标记,方便分类和管理

1. 配置 Restic 支持的存储方式

Restic 支持多种备份存储方式,本笔记介绍 本地SFTP 两种方式。

1.1 本地存储仓库

初始化本地备份仓库

# 将备份存储到本地 /home/mike/backup 文件夹
restic init --repo /home/mike/backup

1.2 SFTP 存储仓库

适合将文件备份到另一台服务器上。

注意事项

  • 配置两台服务器之间的免密码登录
  • 假设:需要备份的服务器为 A,备份服务器为 B
# 初始化远程 SFTP 仓库(示例)
restic init --repo sftp:user@B:/path/to/repo

2. 备份数据

2.1 本地备份示例

# 备份 /var/www 并添加标签
restic -r <repoName> --verbose backup /var/www --tag 标记

# 备份 ~/work 到指定仓库
restic --repo /srv/restic-repo --verbose backup ~/work

3. 恢复备份快照

3.1 查看所有快照

restic -r repoName snapshots

3.2 恢复指定快照

# 恢复指定快照到目标目录
restic -r repoName restore ef5ff5fe --target /var/www

3.3 恢复最新快照

# 恢复最后一次备份
restic -r repoName restore latest

类似 Git 或 Docker 镜像的 latest 标签机制。


4. 删除备份快照

4.1 忘记快照(仅清除记录)

# 仅清除快照记录,文件仍保留在仓库中
restic -r repoName forget ef5ff5fe

4.2 删除快照及相关文件

# 删除快照记录,并清理仓库中不再引用的文件
restic -r repoName forget ef5ff5fe --prune

prune 会真正移除仓库中不再被任何快照引用的文件。


参考文档Restic 0.12.1 Removing backup snapshots