1
1
#! /bin/bash
2
2
3
- if [ " ${MONGODB_ENV_MONGODB_PASS} " == " **None**" ]; then
4
- unset MONGODB_ENV_MONGODB_PASS
5
- fi
6
-
7
3
MONGODB_HOST=${MONGODB_PORT_27017_TCP_ADDR:- ${MONGODB_HOST} }
8
4
MONGODB_HOST=${MONGODB_PORT_1_27017_TCP_ADDR:- ${MONGODB_HOST} }
9
5
MONGODB_PORT=${MONGODB_PORT_27017_TCP_PORT:- ${MONGODB_PORT} }
@@ -17,25 +13,31 @@ MONGODB_PASS=${MONGODB_PASS:-${MONGODB_ENV_MONGODB_PASS}}
17
13
[[ ( -n " ${MONGODB_PASS} " ) ]] && PASS_STR=" --password ${MONGODB_PASS} "
18
14
[[ ( -n " ${MONGODB_DB} " ) ]] && USER_STR=" --db ${MONGODB_DB} "
19
15
20
- BACKUP_CMD=" mongodump --out /backup/" ' $(date +\%Y.\%m.\%d.\%H\%M\%S)' " --host ${MONGODB_HOST} --port ${MONGODB_PORT} ${USER_STR}${PASS_STR}${DB_STR} ${EXTRA_OPTS} "
21
-
16
+ BACKUP_CMD=" mongodump --out /backup/" ' ${BACKUP_NAME}' " --host ${MONGODB_HOST} --port ${MONGODB_PORT} ${USER_STR}${PASS_STR}${DB_STR} ${EXTRA_OPTS} "
22
17
23
18
echo " => Creating backup script"
24
19
rm -f /backup.sh
25
20
cat << EOF >> /backup.sh
26
21
#!/bin/bash
27
22
MAX_BACKUPS=${MAX_BACKUPS}
23
+ BACKUP_NAME=\$ (date +\%Y.\%m.\%d.\%H\%M\%S)
28
24
29
25
echo "=> Backup started"
26
+ if ${BACKUP_CMD} ;then
27
+ echo " Backup succeeded"
28
+ else
29
+ echo " Backup failed"
30
+ rm -rf /backup/\$ {BACKUP_NAME}
31
+ fi
32
+
30
33
if [ -n "\$ {MAX_BACKUPS}" ]; then
31
- while [ \$ (ls /backup -N1 | wc -l) -ge \$ {MAX_BACKUPS} ];
34
+ while [ \$ (ls /backup -N1 | wc -l) -gt \$ {MAX_BACKUPS} ];
32
35
do
33
36
BACKUP_TO_BE_DELETED=\$ (ls /backup -N1 | sort | head -n 1)
34
- echo "Deleting backup \$ {BACKUP_TO_BE_DELETED}"
37
+ echo " Deleting backup \$ {BACKUP_TO_BE_DELETED}"
35
38
rm -rf /backup/\$ {BACKUP_TO_BE_DELETED}
36
39
done
37
40
fi
38
- ${BACKUP_CMD}
39
41
echo "=> Backup done"
40
42
EOF
41
43
chmod +x /backup.sh
@@ -45,7 +47,11 @@ rm -f /restore.sh
45
47
cat << EOF >> /restore.sh
46
48
#!/bin/bash
47
49
echo "=> Restore database from \$ 1"
48
- mongorestore --host ${MONGODB_HOST} --port ${MONGODB_PORT} ${USER_STR}${PASS_STR} \$ 1
50
+ if mongorestore --host ${MONGODB_HOST} --port ${MONGODB_PORT} ${USER_STR}${PASS_STR} \$ 1; then
51
+ echo " Restore succeeded"
52
+ else
53
+ echo " Restore failed"
54
+ fi
49
55
echo "=> Done"
50
56
EOF
51
57
chmod +x /restore.sh
@@ -54,12 +60,11 @@ touch /mongo_backup.log
54
60
tail -F /mongo_backup.log &
55
61
56
62
if [ -n " ${INIT_BACKUP} " ]; then
57
- echo " => Create a backup on start the container "
63
+ echo " => Create a backup on the startup "
58
64
/backup.sh
59
65
fi
60
66
61
67
echo " ${CRON_TIME} /backup.sh >> /mongo_backup.log 2>&1" > /crontab.conf
62
68
crontab /crontab.conf
63
- crontab -l
64
69
echo " => Running cron job"
65
70
exec cron -f
0 commit comments