实现功能: - 文件夹和 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
114 lines
2.3 KiB
Markdown
114 lines
2.3 KiB
Markdown
# 如何执行备份
|
||
|
||
## 前提条件
|
||
|
||
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
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- 备份前关闭正在写入的应用
|
||
- 定期测试备份和恢复流程
|
||
- 保护备份文件和配置文件的安全 |