@@ -11,6 +11,36 @@ curl -fsSL https://raw.githubusercontent.com/shuguangnet/dcoker_backup_script/ma
1111
1212** GitHub仓库** : https://github.com/shuguangnet/dcoker_backup_script
1313
14+
15+
16+
17+
18+ ** 就是这么简单!** 🎉
19+
20+ 备份
21+ ![ image] ( https://minio.933999.xyz/images-lankong/lankong/2025/07/26/6884da1341465.jpg )
22+
23+ 恢复
24+ ![ image] ( https://minio.933999.xyz/images-lankong/lankong/2025/07/26/6884da159e26a.jpg )
25+
26+ 定时备份
27+ ![ image] ( https://minio.933999.xyz/images-lankong/lankong/2025/07/26/6884db36378d6.png )
28+
29+
30+
31+ ## 🖥️ 交互式菜单
32+
33+ 安装完成后,你可以使用交互式菜单进行所有操作:
34+
35+ ``` bash
36+ # 启动交互式菜单
37+ docker-backup-menu
38+ ```
39+
40+
41+
42+ ** 就是这么简单!** 🎉
43+
1444## 🚀 功能特性
1545
1646### 核心功能
@@ -19,6 +49,7 @@ curl -fsSL https://raw.githubusercontent.com/shuguangnet/dcoker_backup_script/ma
1949- ** 镜像备份** :可选择性备份容器镜像(完整备份模式)
2050- ** 一键恢复** :在新服务器上快速恢复容器和数据
2151- ** 增量支持** :智能识别和备份变更的数据
52+ - ** 交互式菜单** :图形化操作界面,新手友好
2253
2354### 高级特性
2455- ** 灵活配置** :支持配置文件和命令行参数
@@ -28,6 +59,8 @@ curl -fsSL https://raw.githubusercontent.com/shuguangnet/dcoker_backup_script/ma
2859- ** 安全加密** :支持GPG加密备份文件
2960- ** 远程存储** :支持备份到远程服务器
3061- ** 通知机制** :支持邮件、Webhook、Slack通知
62+ - ** 定时备份** :支持cron定时任务自动备份
63+ - ** 智能清理** :自动清理过期备份文件
3164
3265## 📋 系统要求
3366
@@ -164,6 +197,12 @@ sudo chown $(whoami):$(whoami) /var/backups/docker
164197
165198如果你使用了一键安装脚本,系统会自动创建全局快捷命令:
166199
200+ #### 交互式菜单(推荐新手)
201+ ``` bash
202+ # 启动交互式菜单
203+ docker-backup-menu
204+ ```
205+
167206#### 备份操作
168207``` bash
169208# 备份单个容器
@@ -175,6 +214,9 @@ docker-backup nginx mysql redis
175214# 备份所有运行中的容器
176215docker-backup -a
177216
217+ # 备份所有容器(排除镜像,节省空间)
218+ docker-backup -a --exclude-images
219+
178220# 完整备份(包含镜像)
179221docker-backup -f nginx
180222
@@ -207,6 +249,12 @@ journalctl -u docker-backup.service
207249
208250# 手动触发备份
209251systemctl start docker-backup.service
252+
253+ # 清理旧备份文件
254+ docker-cleanup 30
255+
256+ # 查看备份统计
257+ docker-cleanup --preview 30
210258```
211259
212260### 📋 手动模式(脚本直接使用)
@@ -269,6 +317,46 @@ systemctl start docker-backup.service
269317./docker-restore.sh --no-volumes --no-mounts /path/to/backup/nginx_20231201_120000
270318```
271319
320+ ## 🖥️ 交互式菜单详解
321+
322+ ### 菜单功能概览
323+
324+ 运行 ` docker-backup-menu ` 后,你将看到一个包含18个选项的交互式菜单:
325+
326+ #### 📦 备份操作 (选项1-6)
327+ - ** 选项1** : 备份所有运行中的容器
328+ - ** 选项2** : 备份所有容器(排除镜像)
329+ - ** 选项3** : 备份所有容器(排除数据卷)
330+ - ** 选项4** : 备份所有容器(排除挂载点)
331+ - ** 选项5** : 备份所有容器(仅配置和日志)
332+ - ** 选项6** : 完整备份所有容器(包含镜像)
333+
334+ #### 🎯 指定容器备份 (选项7-10)
335+ - ** 选项7** : 备份指定容器
336+ - ** 选项8** : 备份指定容器(排除镜像)
337+ - ** 选项9** : 备份指定容器(排除数据卷)
338+ - ** 选项10** : 备份指定容器(排除挂载点)
339+
340+ #### 🔄 恢复操作 (选项11-12)
341+ - ** 选项11** : 恢复容器(交互式向导)
342+ - ** 选项12** : 列出可恢复的备份
343+
344+ #### 🧹 维护操作 (选项13-15)
345+ - ** 选项13** : 清理旧备份文件
346+ - ** 选项14** : 查看备份统计信息
347+ - ** 选项15** : 检查系统状态
348+
349+ #### ⚙️ 配置和帮助 (选项16-18)
350+ - ** 选项16** : 编辑配置文件
351+ - ** 选项17** : 查看帮助信息
352+ - ** 选项18** : 查看版本信息
353+
354+ ### 菜单使用示例
355+
356+ ![ image] ( https://minio.933999.xyz/images-lankong/lankong/2025/07/26/6884da1341465.jpg )
357+
358+ ![ image] ( https://minio.933999.xyz/images-lankong/lankong/2025/07/26/6884da159e26a.jpg )
359+
272360## ⚙️ 配置选项
273361
274362### 主要配置参数
@@ -369,13 +457,24 @@ ssh user@new-server "cd /tmp && ./docker-restore.sh nginx_20231201_120000"
369457
370458### 场景2:定期自动备份
371459
460+ #### 方法1:使用系统服务(推荐)
461+ ``` bash
462+ # 启用定时备份服务
463+ sudo systemctl enable docker-backup.timer
464+ sudo systemctl start docker-backup.timer
465+
466+ # 查看服务状态
467+ sudo systemctl status docker-backup.timer
468+ ```
469+
470+ #### 方法2:自定义cron任务
372471``` bash
373472# 创建定时任务脚本
374473cat > /usr/local/bin/docker-auto-backup.sh << 'EOF '
375474#!/bin/bash
376475cd /opt/docker-backup
377- ./docker-backup.sh -a -o /var/backups/docker
378- find /var/backups/ docker -type d -mtime +7 -exec rm -rf {} \;
476+ ./docker-backup.sh -a --exclude-images - o /var/backups/docker
477+ docker-cleanup 30 # 清理30天前的备份
379478EOF
380479
381480chmod +x /usr/local/bin/docker-auto-backup.sh
@@ -384,6 +483,33 @@ chmod +x /usr/local/bin/docker-auto-backup.sh
384483echo " 0 2 * * * /usr/local/bin/docker-auto-backup.sh" | sudo crontab -
385484```
386485
486+ #### 方法3:rsync同步到远程存储
487+ ``` bash
488+ # 创建备份同步脚本
489+ cat > /usr/local/bin/docker-backup-sync.sh << 'EOF '
490+ #!/bin/bash
491+ BACKUP_DIR="/var/backups/docker"
492+ REMOTE_HOST="backup-server.company.com"
493+ REMOTE_USER="backup"
494+ REMOTE_PATH="/backups/docker"
495+
496+ # 执行备份
497+ cd /opt/docker-backup
498+ ./docker-backup.sh -a --exclude-images -o $BACKUP_DIR
499+
500+ # 同步到远程服务器
501+ rsync -avz --delete $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH/
502+
503+ # 清理本地旧备份
504+ docker-cleanup 7 # 保留7天本地备份
505+ EOF
506+
507+ chmod +x /usr/local/bin/docker-backup-sync.sh
508+
509+ # 添加到crontab(每天凌晨3点备份并同步)
510+ echo " 0 3 * * * /usr/local/bin/docker-backup-sync.sh" | sudo crontab -
511+ ```
512+
387513### 场景3:生产环境迁移
388514
389515``` bash
@@ -555,11 +681,71 @@ WEBHOOK_TIMEOUT=30
555681
556682## 🔄 定期维护
557683
684+ ### 定时备份最佳实践
685+
686+ #### 1. 设置定时备份
687+ ``` bash
688+ # 启用系统定时服务
689+ sudo systemctl enable docker-backup.timer
690+ sudo systemctl start docker-backup.timer
691+
692+ # 查看下次执行时间
693+ sudo systemctl list-timers docker-backup.timer
694+ ```
695+
696+ #### 2. 配置rsync同步
697+ ``` bash
698+ # 设置SSH密钥认证
699+ ssh-keygen -t rsa -b 4096 -f ~ /.ssh/backup_key
700+ ssh-copy-id -i ~ /.ssh/backup_key.pub backup@backup-server
701+
702+ # 创建同步脚本
703+ cat > /usr/local/bin/docker-backup-sync.sh << 'EOF '
704+ #!/bin/bash
705+ BACKUP_DIR="/var/backups/docker"
706+ REMOTE_HOST="backup-server.company.com"
707+ REMOTE_USER="backup"
708+ REMOTE_PATH="/backups/docker"
709+ SSH_KEY="~/.ssh/backup_key"
710+
711+ # 执行备份
712+ cd /opt/docker-backup
713+ ./docker-backup.sh -a --exclude-images -o $BACKUP_DIR
714+
715+ # 同步到远程服务器
716+ rsync -avz --delete -e "ssh -i $SSH_KEY" $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH/
717+
718+ # 清理本地旧备份
719+ docker-cleanup 7 # 保留7天本地备份
720+
721+ # 发送通知
722+ echo "Docker backup completed at $(date)" | mail -s "Backup Status" [email protected] 723+ EOF
724+
725+ chmod +x /usr/local/bin/docker-backup-sync.sh
726+ ```
727+
728+ #### 3. 添加到crontab
729+ ``` bash
730+ # 编辑crontab
731+ crontab -e
732+
733+ # 添加以下内容
734+ # 每天凌晨2点执行备份
735+ 0 2 * * * /usr/local/bin/docker-backup-sync.sh
736+
737+ # 每周日凌晨3点清理远程旧备份
738+ 0 3 * * 0 ssh backup@backup-server " find /backups/docker -type d -mtime +30 -exec rm -rf {} \;"
739+ ```
740+
558741### 清理旧备份
559742``` bash
560743# 手动清理30天前的备份
561744find /var/backups/docker -type d -mtime +30 -exec rm -rf {} \;
562745
746+ # 使用清理工具
747+ docker-cleanup 30
748+
563749# 自动清理(在配置文件中设置)
564750BACKUP_RETENTION_DAYS=30
565751```
@@ -596,7 +782,9 @@ COMPRESSION_FORMAT="gzip" # 最快
596782curl -fsSL https://raw.githubusercontent.com/shuguangnet/dcoker_backup_script/main/install.sh | sudo bash
597783
598784# 立即使用
599- docker-backup -a # 备份所有容器
785+ docker-backup-menu # 启动交互式菜单
786+ docker-backup -a # 备份所有容器
787+ docker-cleanup 30 # 清理30天前的备份
600788```
601789
602790### 获取帮助
0 commit comments