# Backrest: 备份新选择 ## 环境 - Ubuntu 24.04 LTS - Docker & Docker Compose ## 安装 ``` bash mkdir ~/backrest && cd ~/backrest touch docker-compose.yml && nano docker-compose.yml ``` 请按照实际情况修改 `docker-compose.yml` 中的相关部分。 ``` yaml title="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 ``` ``` bash sudo docker compose up -d ``` ## 配置 用浏览器打开 `http://your-server-ip:9898`,首次启动需要配置服务器名称和管理员账号密码。 填写 Cron 表达式时可以参考[这个网站](https://crontab.guru/)。 ### 仓库 - **仓库名称**: 名称中只能包含数字和字母,以及短横线 - 或下划线 _ ,创建后不可更改。 - **仓库 URI** - 本地: `/path/to/your/storage`,绝对路径,需要在 `docker-compose.yml` 的 `volumes` 段填写映射路径。 - 阿里云 OSS: `s3:https://oss-[Region ID].aliyuncs.com/[Bucket Name]` - **密码**: 建议密码熵值至少为 128 位(20 个字符或更长)。点击 `生成` 以使用浏览器的加密随机 API 生成一个随机密码。**妥善保存该密码!** - **环境变量**(阿里云 OSS) - [获取 AccessKey](https://ram.console.aliyun.com/users) - `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.yml` 的 `volumes` 段填写映射路径。 - **备份调度** - **调度类型**: `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](https://garethgeorge.github.io/backrest/introduction/restore-files) [Backrest:自建备份方案的一种可能 - 初之音](https://www.himiku.com/archives/backrest.html)