forked from shuguangnet/docker_backup_script
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackup.conf
More file actions
217 lines (162 loc) · 6.2 KB
/
backup.conf
File metadata and controls
217 lines (162 loc) · 6.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# Docker容器备份配置文件
# 作者: Docker Backup Tool
# 版本: 1.0
# 描述: 备份脚本的配置选项
# ============================================================================
# 基础配置
# ============================================================================
# 默认备份目录(如果命令行没有指定)
DEFAULT_BACKUP_DIR="/var/backups/docker"
# 备份文件保留天数(0表示不自动删除)
BACKUP_RETENTION_DAYS=30
# 备份压缩格式(gzip, bzip2, xz)
COMPRESSION_FORMAT="gzip"
# 是否启用详细日志模式
VERBOSE_MODE=false
# 日志级别(1=ERROR, 2=WARNING, 3=INFO, 4=DEBUG)
LOG_LEVEL=3
# ============================================================================
# 备份选项
# ============================================================================
# 是否默认启用完整备份模式(包含镜像)
DEFAULT_FULL_BACKUP=false
# 是否默认排除镜像备份
DEFAULT_EXCLUDE_IMAGES=false
# 是否默认排除数据卷备份
DEFAULT_EXCLUDE_VOLUMES=false
# 是否默认排除挂载点备份
DEFAULT_EXCLUDE_MOUNTS=false
# 备份前是否暂停容器(建议对关键业务容器设为true)
PAUSE_CONTAINERS_DURING_BACKUP=false
# 是否备份停止的容器
BACKUP_STOPPED_CONTAINERS=true
# ============================================================================
# 容器过滤配置
# ============================================================================
# 要排除的容器名称模式(空格分隔的正则表达式)
EXCLUDE_CONTAINER_PATTERNS=""
# 要排除的镜像名称模式(空格分隔的正则表达式)
EXCLUDE_IMAGE_PATTERNS=""
# 只备份特定标签的容器(空格分隔)
INCLUDE_CONTAINER_LABELS=""
# 排除特定标签的容器(空格分隔)
EXCLUDE_CONTAINER_LABELS=""
# ============================================================================
# 性能和资源配置
# ============================================================================
# 并发备份的最大容器数量
MAX_CONCURRENT_BACKUPS=3
# 单个备份文件的最大大小(MB,0表示无限制)
MAX_BACKUP_SIZE_MB=0
# 备份前检查可用磁盘空间的安全余量(MB)
DISK_SPACE_BUFFER_MB=1024
# 临时文件目录
TEMP_DIR="/tmp"
# ============================================================================
# 网络和传输配置
# ============================================================================
# 远程备份服务器配置(可选)
REMOTE_BACKUP_ENABLED=false
REMOTE_BACKUP_HOST=""
REMOTE_BACKUP_USER=""
REMOTE_BACKUP_PATH=""
REMOTE_BACKUP_KEY=""
# 备份完成后是否上传到远程服务器
UPLOAD_AFTER_BACKUP=false
# 上传完成后是否删除本地备份
DELETE_LOCAL_AFTER_UPLOAD=false
# ============================================================================
# 通知配置
# ============================================================================
# 是否启用邮件通知
EMAIL_NOTIFICATIONS=false
EMAIL_SMTP_SERVER=""
EMAIL_SMTP_PORT=587
EMAIL_USERNAME=""
EMAIL_PASSWORD=""
EMAIL_FROM=""
EMAIL_TO=""
# 是否启用Webhook通知
WEBHOOK_NOTIFICATIONS=false
WEBHOOK_URL=""
WEBHOOK_TIMEOUT=30
# 是否启用Slack通知
SLACK_NOTIFICATIONS=false
SLACK_WEBHOOK_URL=""
# ============================================================================
# 安全配置
# ============================================================================
# 备份文件加密(需要gpg)
ENCRYPT_BACKUPS=false
GPG_RECIPIENT=""
# 备份文件权限设置
BACKUP_FILE_PERMISSIONS=600
BACKUP_DIR_PERMISSIONS=700
# 是否生成备份文件的校验和
GENERATE_CHECKSUMS=true
CHECKSUM_ALGORITHM="sha256"
# ============================================================================
# 高级选项
# ============================================================================
# 自定义Docker命令路径
DOCKER_CMD="docker"
# 自定义tar命令选项
TAR_OPTIONS="--numeric-owner --preserve-permissions"
# 备份前运行的自定义脚本(可选)
PRE_BACKUP_SCRIPT=""
# 备份后运行的自定义脚本(可选)
POST_BACKUP_SCRIPT=""
# 容器特定的备份前脚本目录
CONTAINER_PRE_SCRIPTS_DIR=""
# 容器特定的备份后脚本目录
CONTAINER_POST_SCRIPTS_DIR=""
# ============================================================================
# 调试和测试选项
# ============================================================================
# 试运行模式(不实际执行备份操作)
DRY_RUN=false
# 跳过Docker可用性检查(仅用于测试)
SKIP_DOCKER_CHECK=false
# 备份完成后运行验证测试
RUN_BACKUP_VERIFICATION=true
# ============================================================================
# 示例配置说明
# ============================================================================
# 1. 基础备份配置示例:
# DEFAULT_BACKUP_DIR="/backup/docker"
# BACKUP_RETENTION_DAYS=7
# DEFAULT_FULL_BACKUP=true
# 2. 生产环境配置示例:
# PAUSE_CONTAINERS_DURING_BACKUP=true
# MAX_CONCURRENT_BACKUPS=1
# EMAIL_NOTIFICATIONS=true
# ENCRYPT_BACKUPS=true
# 3. 开发环境配置示例:
# BACKUP_STOPPED_CONTAINERS=false
# MAX_CONCURRENT_BACKUPS=5
# EXCLUDE_CONTAINER_PATTERNS="test.* dev.*"
# 4. 容器过滤示例:
# EXCLUDE_CONTAINER_PATTERNS=".*-temp .*-test monitoring-.*"
# INCLUDE_CONTAINER_LABELS="backup=true"
# EXCLUDE_CONTAINER_LABELS="backup=false"
# 5. 远程备份示例:
# REMOTE_BACKUP_ENABLED=true
# REMOTE_BACKUP_HOST="backup-server.example.com"
# REMOTE_BACKUP_USER="backup"
# REMOTE_BACKUP_PATH="/backups/docker"
# UPLOAD_AFTER_BACKUP=true
# ============================================================================
# 容器特定配置
# ============================================================================
# 可以为特定容器创建独立的配置文件
# 文件名格式: backup-{container_name}.conf
# 例如: backup-nginx.conf, backup-mysql.conf
# 容器特定配置文件中可以覆盖全局设置
# 支持的容器特定选项:
# - CONTAINER_BACKUP_ENABLED=true/false
# - CONTAINER_FULL_BACKUP=true/false
# - CONTAINER_EXCLUDE_VOLUMES=true/false
# - CONTAINER_EXCLUDE_MOUNTS=true/false
# - CONTAINER_PAUSE_DURING_BACKUP=true/false
# - CONTAINER_PRE_BACKUP_SCRIPT="/path/to/script.sh"
# - CONTAINER_POST_BACKUP_SCRIPT="/path/to/script.sh"