Files
docker-backup/llmdoc/guides/how-to-perform-backup.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

2.3 KiB
Raw Blame History

如何执行备份

前提条件

  1. 已安装必要的工具:
    • Docker
    • yq
    • tar
    • gzip

配置备份

  1. 编辑配置文件/etc/docker-backup/config.yml
# 备份基本设置
backup:
  output_dir: /path/to/backup  # 备份文件输出目录
  prefix: docker-backup        # 备份文件名前缀
  retention:
    enabled: true              # 是否启用自动清理
    keep_days: 30              # 保留最近 30 天的备份

# 文件夹备份配置
folders:
  enabled: true                # 是否启用文件夹备份
  sources:                     # 要备份的文件夹列表
    - /path/to/folder1
    - /path/to/folder2
  excludes:                    # 可选:排除的文件/目录模式
    - '*.log'
    - '.git/'

# MySQL 备份配置
mysql:
  enabled: true                # 是否启用 MySQL 备份
  container_name: mysql_container
  username: backup_user
  password: backup_password
  databases:                   # 要备份的数据库
    - database1
    - database2
  # 或使用 'all' 备份所有数据库

# 日志配置
logging:
  enabled: true
  log_file: /path/to/backup.log

执行备份

  1. 手动备份
docker-backup
  1. 自动备份(使用 systemd timer安装时已配置
# 查看定时任务状态
systemctl status docker-backup.timer

# 查看下次执行时间
systemctl list-timers docker-backup.timer

# 立即触发一次备份
systemctl start docker-backup.service
  1. 查看备份结果
# 列出所有备份文件
docker-backup-cleanup --list

# 查看备份日志
sudo journalctl -u docker-backup.service -n 50

故障排查

  1. 常见错误

    • 检查配置文件权限和路径
    • 验证 Docker 容器状态
    • 查看日志文件 log_file
  2. 依赖检查

# 脚本会自动检查,但可手动验证
which yq tar gzip docker

备份恢复

  1. 解压备份文件
tar -xzvf backup-YYYYMMDD-HHMMSS.tar.gz
  1. 恢复文件夹
tar -xzvf folders.tar.gz -C /restore/path
  1. 恢复 MySQL 数据库
# 假设使用 Docker MySQL 容器
zcat mysql.sql.gz | docker exec -i mysql_container mysql -u root -p

注意事项

  • 备份前关闭正在写入的应用
  • 定期测试备份和恢复流程
  • 保护备份文件和配置文件的安全