11#!/usr/bin/with-contenv bash
22
3+ source /assets/functions/*
4+ PROCESS_NAME="db-backup"
5+
36date >/dev/null
47
58if [ "$1" != "NOW" ]; then
69 sleep 10
710fi
811
9- ### Set Debug Mode
10- if [ "$DEBUG_MODE" = "TRUE" ] || [ "$DEBUG_MODE" = "true" ]; then
11- set -x
12- fi
13-
1412### Sanity Test
15- if [ ! -n "$DB_TYPE" ]; then
16- echo '** [db-backup] ERROR: No Database Type Selected! '
17- exit 1
18- fi
19-
20- if [ ! -n "$DB_HOST" ]; then
21- echo '** [db-backup] ERROR: No Database Host Entered! '
22- exit 1
23- fi
13+ sanity_var DB_TYPE "Database Type"
14+ sanity_var DB_HOST "Database Host"
2415
2516### Set Defaults
2617COMPRESSION=${COMPRESSION:-GZ}
@@ -149,7 +140,7 @@ function backup_pgsql() {
149140 export PGPASSWORD=${DBPASS}
150141 DATABASES=`psql -h $DBHOST -U $DBUSER -p ${DBPORT} -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;' `
151142 for db in $DATABASES; do
152- echo "** [db-backup] Dumping database: $db"
143+ print_info " Dumping database: $db"
153144 TARGET=pgsql_${db}_${DBHOST}_${now}.sql
154145 pg_dump -h ${DBHOST} -p ${DBPORT} -U ${DBUSER} $db > ${TMPDIR}/${TARGET}
155146 generate_md5
@@ -168,17 +159,17 @@ function backup_pgsql() {
168159function backup_redis() {
169160 TARGET=redis_${db}_${DBHOST}_${now}.rdb
170161 echo bgsave | redis-cli -h ${DBHOST} -p ${DBPORT} ${REDIS_PASS_STR} --rdb ${TMPDIR}/${TARGET}
171- echo "** [db-backup] Dumping Redis - Flushing Redis Cache First"
162+ print_info " Dumping Redis - Flushing Redis Cache First"
172163 sleep 10
173164 try=5
174165 while [ $try -gt 0 ] ; do
175166 saved=$(echo 'info Persistence' | redis-cli -h ${DBHOST} -p ${DBPORT} ${REDIS_PASS_STR} | awk '/rdb_bgsave_in_progress:0/{print "saved"}')
176167 ok=$(echo 'info Persistence' | redis-cli -h ${DBHOST} -p ${DBPORT} ${REDIS_PASS_STR} | awk '/rdb_last_bgsave_status:ok/{print "ok"}')
177168 if [[ "$saved" = "saved" ]] && [[ "$ok" = "ok" ]]; then
178- echo "** [db-backup] Redis Backup Complete"
169+ print_info " Redis Backup Complete"
179170 fi
180171 try=$((try - 1))
181- echo "** [db-backup] Redis Busy - Waiting and retrying in 5 seconds"
172+ print_info " Redis Busy - Waiting and retrying in 5 seconds"
182173 sleep 5
183174 done
184175 generate_md5
@@ -188,7 +179,7 @@ function backup_redis() {
188179
189180function backup_rethink() {
190181 TARGET=rethink_${db}_${DBHOST}_${now}.tar.gz
191- echo "** [db-backup] Dumping rethink Database: $db"
182+ print_info " Dumping rethink Database: $db"
192183 rethinkdb dump -f ${TMPDIR}/${TARGET} -c ${DBHOST}:${DBPORT} ${RETHINK_PASS_STR} ${RETHINK_DB_STR}
193184 move_backup
194185}
@@ -201,23 +192,23 @@ function check_availability() {
201192 while ! (nc -z ${DBHOST} ${DBPORT}) ; do
202193 sleep 5
203194 let COUNTER+=5
204- echo "** [db-backup] CouchDB Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
195+ print_warn " CouchDB Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
205196 done
206197 ;;
207198 "influx" )
208199 COUNTER=0
209200 while ! (nc -z ${DBHOST} ${DBPORT}) ; do
210201 sleep 5
211202 let COUNTER+=5
212- echo "** [db-backup] InfluxDB Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
203+ print_warn " InfluxDB Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
213204 done
214205 ;;
215206 "mongo" )
216207 COUNTER=0
217208 while ! (nc -z ${DBHOST} ${DBPORT}) ; do
218209 sleep 5
219210 let COUNTER+=5
220- echo "** [db-backup] Mongo Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
211+ print_warn " Mongo Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
221212 done
222213 ;;
223214 "mysql" )
@@ -230,7 +221,7 @@ function check_availability() {
230221 :
231222 break
232223 fi
233- echo "** [db-backup] MySQL/MariaDB Server "$DBHOST" is not accessible, retrying.. ($COUNTER seconds so far)"
224+ print_warn " MySQL/MariaDB Server "$DBHOST" is not accessible, retrying.. ($COUNTER seconds so far)"
234225 sleep 5
235226 let COUNTER+=5
236227 done
@@ -243,23 +234,23 @@ function check_availability() {
243234 do
244235 sleep 5
245236 let COUNTER+=5
246- echo "** [db-backup] Postgres Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
237+ print_warn " Postgres Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
247238 done
248239 ;;
249240 "redis" )
250241 COUNTER=0
251242 while ! (nc -z ${DBHOST} ${DBPORT}) ; do
252243 sleep 5
253244 let COUNTER+=5
254- echo "** [db-backup] Redis Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
245+ print_warn " Redis Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
255246 done
256247 ;;
257248 "rethink" )
258249 COUNTER=0
259250 while ! (nc -z ${DBHOST} ${DBPORT}) ; do
260251 sleep 5
261252 let COUNTER+=5
262- echo "** [db-backup] RethinkDB Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
253+ print_warn " RethinkDB Host '"$DBHOST"' is not accessible, retrying.. ($COUNTER seconds so far)"
263254 done
264255 ;;
265256 esac
@@ -299,7 +290,7 @@ function move_backup() {
299290
300291
301292### Container Startup
302- echo '** [db-backup] Initialized at at '$( date)
293+ print_info " Initialized on ` date`"
303294
304295### Wait for Next time to start backup
305296 current_time=$(date +"%s")
@@ -361,8 +352,8 @@ echo '** [db-backup] Initialized at at '$(date)
361352
362353### Zabbix
363354 if [ "$ENABLE_ZABBIX" = "TRUE" ] || [ "$ENABLE_ZABBIX" = "true" ]; then
364- zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k dbbackup.size -o `stat -c%s ${DB_DUMP_TARGET}/${TARGET}`
365- zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k dbbackup.datetime -o `date -r ${DB_DUMP_TARGET}/${TARGET} +'%s'`
355+ silent zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k dbbackup.size -o `stat -c%s ${DB_DUMP_TARGET}/${TARGET}`
356+ silent zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k dbbackup.datetime -o `date -r ${DB_DUMP_TARGET}/${TARGET} +'%s'`
366357 fi
367358
368359### Automatic Cleanup
0 commit comments