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
This commit is contained in:
114
llmdoc/guides/how-to-perform-backup.md
Normal file
114
llmdoc/guides/how-to-perform-backup.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# 如何执行备份
|
||||
|
||||
## 前提条件
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 备份前关闭正在写入的应用
|
||||
- 定期测试备份和恢复流程
|
||||
- 保护备份文件和配置文件的安全
|
||||
Reference in New Issue
Block a user