实现功能: - 文件夹和 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
1.7 KiB
1.7 KiB
Docker Backup 安装架构
1. 身份与目的
- 目标:自动化 Docker 容器和卷的备份部署
- 关键功能:依赖检测、文件部署、服务配置、定时任务管理
2. 核心组件
install.sh(主安装脚本):整个安装流程的协调者,支持远程下载和部署- 动态生成的 systemd 服务文件(不再使用模板)
3. 执行流程图(LLM检索映射)
3.1 环境准备阶段
- 权限验证:
check_root(),确保以 root 权限运行 - 操作系统检测:
detect_os(),确定系统类型和版本
3.2 依赖安装阶段
- 工具检测:
install_yq(),安装 YAML 解析工具 - 依赖检查:
install_dependencies()- 检测并安装:tar, gzip, docker, find
- 根据操作系统使用不同的包管理器 (apt/yum/dnf)
3.3 文件部署阶段
- 远程下载:
deploy_files()- 从 Gitea 仓库下载
backup.sh和cleanup.sh - 安装到
/usr/local/bin/docker-backup和/usr/local/bin/docker-backup-cleanup - 设置可执行权限
- 下载配置文件模板到
/etc/docker-backup/config.yml
- 从 Gitea 仓库下载
3.4 服务配置阶段
- Systemd 服务生成:
setup_systemd()- 动态生成
.service文件到/etc/systemd/system/ - 动态生成
.timer文件,定义执行计划
- 动态生成
- 服务启用:
enable_service()- 重新加载 systemd 守护进程
- 启用并启动 systemd timer
4. 设计原则
- 模块化:每个函数职责单一,便于维护
- 跨平台兼容:支持主流 Linux 发行版
- 安全性:要求 root 权限,预防权限问题
- 灵活性:支持自定义安装目录、服务名称和执行计划