备份 & 恢复
ASP 提供停机全量备份和恢复脚本。备份包含部署文件、配置、证书、日志以及全部 Docker named volumes。
保持部署目录名称不变
备份和恢复都必须在名为 asp-compose 的部署目录中执行。
修改目录名会改变 Docker Compose project name 和数据卷名称,导致脚本拒绝执行。
保护备份文件
备份包含 .env、证书、数据库、对象存储和日志,可能包含密钥、API Key、告警数据和调查记录。Custom Variables 的 Secret 和普通 value 都以明文保存在 PostgreSQL 中,也会进入备份。请加密保存并限制访问权限。
1. 创建全量备份
在 asp-compose/ 目录中执行:
bash
./scripts/backup.sh脚本会停止服务、创建备份、重新启动服务并运行 doctor.sh。默认备份目录:
text
backups/asp-full-<timestamp>/如需写入其他磁盘,指定备份根目录:
bash
./scripts/backup.sh /mnt/asp-backups每个备份目录包含:
| 文件 | 内容 |
|---|---|
files.tar.gz | .env、Compose 配置、脚本、定制内容、证书和日志。 |
volumes.tar.gz | PostgreSQL、Redis、RustFS、定制 Python 依赖和静态文件 volumes。 |
manifest.txt | 备份格式、时间和 Compose project 信息。 |
SHA256SUMS | 两个归档的 SHA-256。 |
备份期间 ASP 会暂时停止。脚本不会自动删除旧备份,请根据磁盘容量自行维护保留策略。
2. 恢复前准备
恢复前确认:
- 当前目录名为
asp-compose。 - 目标备份目录包含
manifest.txt、SHA256SUMS、files.tar.gz和volumes.tar.gz。 - 如果恢复到新机器,已经安装 Docker 和 Docker Compose,并把 ASP Compose 发布包解压为
asp-compose/;不需要先执行初始化。
恢复会覆盖当前数据
恢复脚本会替换当前部署文件,并清空 PostgreSQL、Redis、RustFS、定制 Python 依赖和静态文件 volumes 后写入备份数据。该操作不会自动备份当前环境。
3. 执行全量恢复
在要恢复的 asp-compose/ 目录中执行:
bash
./scripts/restore.sh /path/to/asp-full-backup脚本会先校验 manifest、SHA-256、归档文件和 Compose 配置,再停止当前服务并执行恢复。完整恢复后会启动服务并运行 doctor.sh。
如果部署文件或 volume 恢复失败,脚本不会启动服务。根据命令输出修复问题后,再重新执行恢复。