实现功能: - 文件夹和 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
2.3 KiB
2.3 KiB
如何执行备份
前提条件
- 已安装必要的工具:
- Docker
- yq
- tar
- gzip
配置备份
- 编辑配置文件:
/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
执行备份
- 手动备份:
docker-backup
- 自动备份(使用 systemd timer,安装时已配置):
# 查看定时任务状态
systemctl status docker-backup.timer
# 查看下次执行时间
systemctl list-timers docker-backup.timer
# 立即触发一次备份
systemctl start docker-backup.service
- 查看备份结果:
# 列出所有备份文件
docker-backup-cleanup --list
# 查看备份日志
sudo journalctl -u docker-backup.service -n 50
故障排查
-
常见错误:
- 检查配置文件权限和路径
- 验证 Docker 容器状态
- 查看日志文件
log_file
-
依赖检查:
# 脚本会自动检查,但可手动验证
which yq tar gzip docker
备份恢复
- 解压备份文件
tar -xzvf backup-YYYYMMDD-HHMMSS.tar.gz
- 恢复文件夹
tar -xzvf folders.tar.gz -C /restore/path
- 恢复 MySQL 数据库
# 假设使用 Docker MySQL 容器
zcat mysql.sql.gz | docker exec -i mysql_container mysql -u root -p
注意事项
- 备份前关闭正在写入的应用
- 定期测试备份和恢复流程
- 保护备份文件和配置文件的安全