Files
docker-backup/llmdoc/architecture/backup-engine-architecture.md
Wang Defa 4d00283654 feat: 实现 Docker 备份系统,支持远程一键安装
实现功能:
- 文件夹和 MySQL 容器数据库备份
- tar.gz 压缩和自动清理旧备份
- systemd 定时任务集成
- 远程一键安装脚本(通过 Gitea 仓库)
- 完整的 llmdoc 文档系统

安装方式:
bash <(curl -sL https://gitea.bcde.io/wangdefa/docker-backup/raw/branch/main/install.sh)

配置文件位置:/etc/docker-backup/config.yml
命令:docker-backup, docker-backup-cleanup
2025-12-25 15:02:07 +08:00

67 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 备份执行引擎架构
## 1. 身份识别
- **目的**:一个高度可配置的 Docker 备份解决方案,支持文件夹和 MySQL 数据库的备份
- **核心功能**:自动备份、日志记录、临时文件管理和备份保留策略
## 2. 核心组件
- `bin/backup.sh`(主备份脚本):
- 负责协调整个备份流程
- 主要功能包括依赖检查、配置加载、文件备份、数据库备份和清理
## 3. 执行流程LLM 检索图)
备份执行流程遵循以下关键步骤:
1. **依赖检查**`check_dependencies()`
- 验证所需工具 (yq, tar, gzip, docker)
- 如缺少依赖,脚本将终止执行
2. **配置加载**`load_config()`
- 读取 `/etc/docker-backup/config.yml`
- 配置备份输出目录、前缀和保留策略
3. **临时目录准备**
- 使用 `mktemp` 创建唯一临时目录
- 注册清理 `trap`,确保资源释放
4. **文件夹备份**`backup_folders()`
- 支持多源目录备份
- 使用 `tar` 打包
- 可配置排除规则
5. **数据库备份**`backup_mysql()`
- 通过 `docker exec` 调用 `mysqldump`
- 支持全库或指定库备份
- 使用 `gzip` 压缩
6. **备份合并**`merge_backups()`
- 合并文件夹和数据库备份
- 生成时间戳文件名
- 输出单个 `.tar.gz` 文件
7. **备份清理**`cleanup_old_backups()`
- 按配置的保留天数清理旧备份
## 4. 设计原理
- **模块化**:每个功能封装为独立函数
- **可配置性**:通过 YAML 文件灵活配置
- **错误处理**:严格的错误捕获和日志记录
- **安全性**:最小权限原则,临时文件自动清理
## 5. 关键配置点
- 备份源目录
- 数据库备份范围
- 输出目录和文件前缀
- 日志配置
- 备份保留策略
## 6. 局限性和注意事项
- 依赖外部工具yq, docker, tar, gzip
- 需要正确配置 MySQL 容器访问权限
- 备份过程中需要足够的临时存储空间