Skip to content

Commit 9002893

Browse files
author
Sven Speckmaier
committed
Fixed while loop detection because of extra \
1 parent 6e45140 commit 9002893

File tree

1 file changed

+70
-67
lines changed

1 file changed

+70
-67
lines changed

entrypoint

Lines changed: 70 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ set -e
99
# - INCREMENTAL: Create ${TARGET_PREFIX}/full-{LASTDATE}-inc-${DATE} based on the last full-${DATE}
1010
#
1111
MODE="${MODE:-SIMPLE}"
12+
RUN_EVERY="${RUN_EVERY:-}"
1213

1314
TARGET_PREFIX="/target"
1415
DATA_DIRECTORY="/var/lib/mysql"
@@ -171,98 +172,100 @@ usage() {
171172
echo " Runs the given command within the container."
172173
}
173174

175+
backup() {
174176

175-
case $1 in
176-
backup)
177-
177+
RUNNING="true"
178+
while [ x"$RUNNING" = x"true" ] ; do
178179

179-
RUNNING="true"
180-
while [ x"$RUNNING" = x"true" ] ; do
180+
DATE=$(date '+%Y-%m-%d-%H%M%S')
181+
NAME="${DATE}"
181182

182-
DATE=$(date '+%Y-%m-%d-%H%M%S')
183-
NAME="${DATE}"
184-
185-
if [ x"${MODE}" = x"FULL" ] ; then
186-
echo "======================================================================"
187-
echo "= Full backup process"
188-
echo "======================================================================"
189-
echo ""
190-
191-
NAME="full-${DATE}"
192-
else if [ x"${MODE}" = x"INCREMENTAL" ] ; then
193-
echo "======================================================================"
194-
echo "= Incremental backup process"
195-
echo "======================================================================"
196-
echo ""
197-
BASE_BACKUP="$(find_last_full_backup)"
198-
BASE_PATH="${TARGET_PREFIX}/${BASE_BACKUP}"
199-
NAME="full-${BASE_BACKUP}-inc-$DATE"
200-
echo "Base backup: ${BASE_BACKUP}"
201-
echo ""
202-
fi
183+
if [ x"${MODE}" = x"FULL" ] ; then
184+
echo "======================================================================"
185+
echo "= Full backup process"
186+
echo "======================================================================"
187+
echo ""
203188

204-
TARGET="${TARGET_PREFIX}/$NAME"
189+
NAME="full-${DATE}"
190+
fi
205191

192+
if [ x"${MODE}" = x"INCREMENTAL" ] ; then
206193
echo "======================================================================"
207-
echo "= Starting backup process to $TARGET"
194+
echo "= Incremental backup process"
208195
echo "======================================================================"
209196
echo ""
197+
BASE_BACKUP="$(find_last_full_backup)"
198+
BASE_PATH="${TARGET_PREFIX}/${BASE_BACKUP}"
199+
NAME="full-${BASE_BACKUP}-inc-$DATE"
200+
echo "Base backup: ${BASE_BACKUP}"
201+
echo ""
202+
fi
210203

211-
setDefaults
212-
213-
if [ ! -d "$TARGET" ] ; then
214-
echo "$TARGET does not exist yet, creating"
215-
mkdir -p "$TARGET"
216-
fi
204+
TARGET="${TARGET_PREFIX}/$NAME"
217205

218-
echo "Creating backup in $TARGET"
206+
echo "======================================================================"
207+
echo "= Starting backup process to $TARGET"
208+
echo "======================================================================"
209+
echo ""
219210

220-
backupRancher $TARGET
211+
setDefaults
221212

222-
if [ x"${MODE}" = x"INCREMENTAL" ] ; then
223-
# Backup - copies innodb files and reads binary log while doing so
224-
xtrabackup --backup --datadir="$DATA_DIRECTORY" \
225-
--incremental-basedir="${BASE_PATH}" \
226-
--target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \
227-
--host "${MYSQL_HOST}" --port ${MYSQL_PORT} \
228-
else
229-
# Backup - copies innodb files and reads binary log while doing so
230-
xtrabackup --backup --datadir="$DATA_DIRECTORY" \
231-
--incremental-basedir=/data/backups/base\
232-
--target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \
233-
--host "${MYSQL_HOST}" --port ${MYSQL_PORT} \
234-
fi
213+
if [ ! -d "$TARGET" ] ; then
214+
echo "$TARGET does not exist yet, creating"
215+
mkdir -p "$TARGET"
216+
fi
235217

218+
echo "Creating backup in $TARGET"
219+
220+
backupRancher $TARGET
221+
222+
if [ x"${MODE}" = x"INCREMENTAL" ] ; then
223+
# Backup - copies innodb files and reads binary log while doing so
224+
xtrabackup --backup --datadir="$DATA_DIRECTORY" \
225+
--incremental-basedir="${BASE_PATH}" \
226+
--target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \
227+
--host "${MYSQL_HOST}" --port ${MYSQL_PORT}
228+
else
229+
# Backup - copies innodb files and reads binary log while doing so
230+
xtrabackup --backup --datadir="$DATA_DIRECTORY" \
231+
--incremental-basedir=/data/backups/base\
232+
--target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \
233+
--host "${MYSQL_HOST}" --port ${MYSQL_PORT}
234+
fi
236235

236+
if [ x"${MODE}" = x"SIMPLE" ] ; then
237+
echo "Mode is SIMPLE, preparing backups"
237238

238-
if [ x"${MODE}" = x"SIMPLE" ] ; then
239-
echo "Mode is SIMPLE, preparing backups"
239+
# First prepare - selfheal innodb and apply binary log to make it consistent
240+
xtrabackup --prepare --target-dir="$TARGET"
241+
# Second prepare - write logfiles for faster server startup
242+
xtrabackup --prepare --target-dir="$TARGET"
243+
fi
244+
echo "$TARGET Done"
240245

241-
# First prepare - selfheal innodb and apply binary log to make it consistent
242-
xtrabackup --prepare --target-dir="$TARGET"
243-
# Second prepare - write logfiles for faster server startup
244-
xtrabackup --prepare --target-dir="$TARGET"
245-
fi
246-
echo "$TARGET Done"
246+
createRestoreService "$NAME"
247247

248-
createRestoreService "$NAME"
248+
if [ ! -z "${RUN_EVERY}" ] ; then
249249

250-
if [ ! -z "RUN_EVERY" ] ; then
250+
echo "Sleeping for ${RUN_EVERY} before starting again"
251+
sleep "${RUN_EVERY}"
251252

252-
echo "Sleeping for $RUN_EVERY before starting again"
253-
sleep "$RUN_EVERY"
253+
else
254254

255-
else
255+
echo "Environment variable RUN_EVERY was not set, not looping"
256+
RUNNING="false"
256257

257-
echo "Environment variable RUN_EVERY was not set, not looping"
258-
RUNNING="false"
258+
fi
259259

260-
fi
261260

261+
done
262+
}
262263

263-
done
264-
;;
264+
case $1 in
265+
backup)
265266

267+
backup
268+
;;
266269
restore)
267270
shift
268271
TARGET="${TARGET_PREFIX}/$1"

0 commit comments

Comments
 (0)