22
33set -e
44
5+ #
6+ # Backup Mode. Possible values:
7+ # - SIMPLE: Create ${TARGET_PREFIX}/${DATE}
8+ # - FULL: Create ${TARGET_PREFIX}/full-${DATE}
9+ # - INCREMENTAL: Create ${TARGET_PREFIX}/full-{LASTDATE}-inc-${DATE} based on the last full-${DATE}
10+ #
11+ MODE=" ${MODE:- SIMPLE} "
12+
513TARGET_PREFIX=" /target"
614DATA_DIRECTORY=" /var/lib/mysql"
715
@@ -45,12 +53,11 @@ createRestoreService() {
4553 curl http://rancher-metadata/2015-12-19/self/service/metadata/docker-compose \
4654 > /tmp/docker-compose.yml.tpl
4755
48- ESCAPED_RANCHER_URL=$( echo ${RANCHER_URL} | sed -e ' s/[\/&]/\\&/g' )
4956 ALPHANUM_TARGET_BACKUP=$( echo ${TARGET_BACKUP} | sed -e ' s/[^a-zA-Z0-9\-]//g' )
5057 sed \
5158 -e " s~%%BACKUP%%~$TARGET_BACKUP ~" \
5259 -e " s~%%BACKUP_ALPHANUM%%~$ALPHANUM_TARGET_BACKUP ~" \
53- -e " s~%%RANCHER_URL%%~$ESCAPED_RANCHER_URL ~" \
60+ -e " s~%%RANCHER_URL%%~$RANCHER_URL ~" \
5461 -e " s~%%RANCHER_KEY%%~$RANCHER_ACCESS_KEY ~" \
5562 -e " s~%%RANCHER_SECRET%%~$RANCHER_SECRET_KEY ~" \
5663 -e " s~%%BACKUP_VOLUME%%~$BACKUP_VOLUME ~" \
@@ -99,14 +106,14 @@ setDefaults() {
99106}
100107
101108backupRancher () {
102-
109+
103110 echo " Backing up rancher stack"
104111
105112 local METADATA_URL=" http://rancher-metadata/2015-07-25"
106113 local STACK=$( curl -s $METADATA_URL /self/service/links | sed ' s/%2F.*//' )
107114 local SERVICE=$( curl -s $METADATA_URL /self/service/links | sed ' s/[^%]*%2F//' )
108115 local TARGET_DIRECTORY=" $1 "
109-
116+
110117 if [ -z " $RANCHER_URL " -o -z " $RANCHER_ACCESS_KEY " -o -z " $RANCHER_SECRET_KEY " ] ; then
111118 echo " No rancher access data set, not backing up {docker,rancher}-compose.yml files"
112119 return
@@ -117,7 +124,7 @@ backupRancher() {
117124 RANCHER_CLI_VERSION=" v0.4.1"
118125 fi
119126
120- RANCHER_CLI_DIRECTORY=" /opt/rancher/${RANCHER_CLI_VERSION} "
127+ RANCHER_CLI_DIRECTORY=" /opt/rancher/${RANCHER_CLI_VERSION} "
121128 if [ ! -d " $RANCHER_CLI_DIRECTORY " ] ; then
122129 mkdir -p " $RANCHER_CLI_DIRECTORY "
123130 fi
@@ -168,7 +175,9 @@ case $1 in
168175
169176
170177 DATE=$( date ' +%Y-%m-%d-%H%M%S' )
171- TARGET=" ${TARGET_PREFIX} /$DATE "
178+ NAME=" ${DATE} "
179+
180+ TARGET=" ${TARGET_PREFIX} /$NAME "
172181
173182 echo " ======================================================================"
174183 echo " = Starting backup process to $TARGET "
@@ -196,7 +205,7 @@ case $1 in
196205 xtrabackup --prepare --target-dir=" $TARGET "
197206 echo " $TARGET Done"
198207
199- createRestoreService " $DATE "
208+ createRestoreService " $NAME "
200209
201210 if [ ! -z " RUN_EVERY" ] ; then
202211
@@ -211,7 +220,7 @@ case $1 in
211220 fi
212221
213222
214- done
223+ done
215224 ;;
216225
217226 restore)
@@ -268,6 +277,16 @@ case $1 in
268277 rm -Rfv /var/lib/mysql/*
269278 echo " Done"
270279 ;;
280+ cleanup)
281+ echo " ======================================================================"
282+ echo " = Clean up expired backups from $TARGET "
283+ echo " ======================================================================"
284+ echo " "
285+
286+ FILES=( $( ls $TARGET /full-???? -?? -?? ) )
287+
288+ ;;
289+
271290 run)
272291 shift
273292
0 commit comments