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