跨平台备份工具Restic

Restic 跨平台备份工具完全指南

Restic 是一款开源的跨平台备份工具,支持本地、SFTP、S3 等多种存储方式。相比传统备份工具,Restic 采用增量备份和去重技术,大幅节省存储空间。


一、支持的存储方式

Restic 支持多种备份目标,本文重点介绍两种常用方式:

存储方式 适用场景 优势
本地存储 备份到本机硬盘或挂载的外部存储 速度快,无网络依赖
SFTP 备份到远程服务器 异地容灾,安全可靠

二、初始化备份仓库

本地存储仓库

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

执行后会提示设置密码,这个密码用于加密备份数据,务必妥善保管。

SFTP 远程仓库

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

⚠️ 前提条件:需要先配置两台服务器间的 SSH 免密登录。以下将需要备份的服务器称为 A,备份服务器称为 B
# 在 A 服务器上初始化 SFTP 仓库
restic init --repo sftp:user@backup-server:/backup/repo

三、备份数据

基本备份命令

# 本地备份
restic -r /home/mike/backup --verbose backup /var/www

# 带标签的备份(便于管理)
restic -r /home/mike/backup backup /var/www --tag web-files

# SFTP 备份
restic -r sftp:user@backup-server:/backup/repo backup ~/work
💡 参数说明
  • -r:指定仓库路径
  • --verbose:显示详细信息
  • --tag:为快照添加标签

四、恢复备份

查看所有快照

restic -r /home/mike/backup snapshots

输出示例:

ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
ef5ff5fe  2024-03-15 10:30:00  server-a    web-files   /var/www
a1b2c3d4  2024-03-16 10:30:00  server-a    web-files   /var/www

恢复指定快照

# 恢复指定 ID 的快照
restic -r /home/mike/backup restore ef5ff5fe --target /var/www

# 恢复最新快照
restic -r /home/mike/backup restore latest --target /var/www
快捷方式:使用 latest 可以快速恢复最后一次备份,类似 Git 和 Docker 的 latest 标签。

五、删除快照

删除指定快照

# 仅删除快照记录
restic -r /home/mike/backup forget ef5ff5fe

# 删除快照并清理数据
restic -r /home/mike/backup forget ef5ff5fe --prune
⚠️ 重要区别forget 只删除快照记录,数据仍在仓库中。加上 --prune 才会真正释放存储空间。

自动清理策略

# 保留最近 7 天的每日备份,4 周的每周备份
restic -r /home/mike/backup forget --keep-daily 7 --keep-weekly 4 --prune

六、实用技巧

排除文件

# 排除特定目录
restic backup /var/www --exclude /var/www/cache --exclude /var/www/logs

# 使用排除文件
restic backup /var/www --exclude-file=exclude.txt

定时备份

创建 cron 任务:

# 每天凌晨 2 点备份
0 2 * * * restic -r /home/mike/backup backup /var/www --tag daily

检查仓库完整性

restic -r /home/mike/backup check

七、参考资源