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

114 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 如何执行备份
## 前提条件
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
```
## 注意事项
- 备份前关闭正在写入的应用
- 定期测试备份和恢复流程
- 保护备份文件和配置文件的安全