跳转至

Backrest: 备份新选择

环境

  • Ubuntu 24.04 LTS
  • Docker & Docker Compose

安装

mkdir ~/backrest && cd ~/backrest

touch docker-compose.yml && nano docker-compose.yml

请按照实际情况修改 docker-compose.yml 中的相关部分。

docker-compose.yml
services:
  backrest:
    image: garethgeorge/backrest:latest
    container_name: backrest
    hostname: your-server-name
    ports: 
      - "9898:9898"
    volumes:
      # Backrest data
      - /path/to/backrest/data:/data
      - /path/to/backrest/config:/config
      - /path/to/backrest/cache:/cache
      - /path/to/backrest/tmp:/tmp
      # Rclone config
      - /path/to/backrest/rclone:/root/.config/rclone
      # Data backup path
      - /path/to/immich-app:/backup/immich-app:ro
      # Data restore path
      - /path/to/backrest/restore:/restore
    environment:
      BACKREST_DATA: /data
      BACKREST_CONFIG: /config/config.json
      XDG_CACHE_HOME: /cache
      TMPDIR: /tmp
      TZ: "Asia/Shanghai"
    restart: unless-stopped
sudo docker compose up -d

配置

用浏览器打开 http://your-server-ip:9898,首次启动需要配置服务器名称和管理员账号密码。

填写 Cron 表达式时可以参考这个网站

仓库

  • 仓库名称: 名称中只能包含数字和字母,以及短横线 - 或下划线 _ ,创建后不可更改。
  • 仓库 URI
    • 本地: /path/to/your/storage,绝对路径,需要在 docker-compose.ymlvolumes 段填写映射路径。
    • 阿里云 OSS: s3:https://oss-[Region ID].aliyuncs.com/[Bucket Name]
  • 密码: 建议密码熵值至少为 128 位(20 个字符或更长)。点击 生成 以使用浏览器的加密随机 API 生成一个随机密码。妥善保存该密码!
  • 环境变量(阿里云 OSS)
    • 获取 AccessKey
    • AWS_ACCESS_KEY_ID=[your-AccessKey-id]
    • AWS_SECRET_ACCESS_KEY=[your-AccessKey-secret]
  • 选项(阿里云 OSS)
    • -o s3.bucket-lookup=dns
    • -o s3.region=[Region ID]
    • --limit-upload 1800 (上传限速,单位为 KiB/s)
  • 清理策略
    • 清理后最大未引用数据占比: 10
    • 调度类型: Cron
    • Cron 表达式: 0 8 * * 3 (每周三早上8点)
    • 参考时钟: 本地
  • 检查策略
    • 读取数据百分比: 10
    • 调度类型: Cron
    • Cron 表达式: 0 8 * * 4 (每周四早上8点)
    • 参考时钟: 本地

调度计划

  • 调度计划名称: 名称中只能包含数字和字母,以及短横线 - 或下划线 _ ,创建后不可更改。
  • 路径: /path/to/your/data,绝对路径,需要在 docker-compose.ymlvolumes 段填写映射路径。
  • 备份调度
    • 调度类型: Cron
    • Cron 表达式: 0 6 * * * (每天早上6点)
    • 参考时钟: 本地
  • 保留策略: 按计数
    • 保留最近的N个快照: 7

恢复数据

以下讨论设备正常运行时恢复部分数据,和设备重置后从零恢复数据两种情况。

部分数据恢复

点击数据所在的调度计划,找到希望恢复的对应时间点的备份,在“快照”处打开“快照浏览器”。

点击希望恢复的文件夹/文件的右侧选项,点击 Restore to path

Restore to path: /restore/[backrest-generate]

恢复的数据会存放在 /path/to/backrest/restore/[backrest-generate] 内。

从零恢复数据

参照上述流程重新安装 Backrest。

参照上述流程重新配置仓库,仓库 URI密码环境变量(阿里云 OSS)和选项(阿里云 OSS)等务必与此前配置一致。

在对应仓库界面内,点击 索引快照。快照完成索引后,将按创建时间顺序以树状视图显示在 Backrest 中。

接下来,可参照部分数据恢复的流程恢复需要的数据。

参考

Restore Files | Backrest

Backrest:自建备份方案的一种可能 - 初之音