mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-21 21:33:28 +01:00
1.2
This commit is contained in:
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,9 +1,14 @@
|
|||||||
## 1.2 2017-09-27 Dave Conroy <dave at tiredofit dot ca>
|
|
||||||
* Script Cleanup
|
|
||||||
|
|
||||||
## 1.1 2017-09-14 Dave Conroy <dave at tiredofit dot ca>
|
## 1.2 - 2017-10-19 - dave at tiredofit dot ca
|
||||||
|
|
||||||
|
* Syntax Error Fix
|
||||||
|
* Fix some environment variables for Postgres and Redis
|
||||||
|
|
||||||
|
## 1.1 - 2017-09-14 - dave at tiredofit dot ca
|
||||||
|
|
||||||
* Added CouchDB
|
* Added CouchDB
|
||||||
|
|
||||||
## 1.0 2017-09-14 Dave Conroy <dave at tiredofit dot ca>
|
## 1.0 - 2017-09-14 - dave at tiredofit dot ca
|
||||||
|
|
||||||
* Initial Release
|
* Initial Release
|
||||||
* Alpine:Edge
|
* Alpine:Edge
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ FROM tiredofit/alpine:edge
|
|||||||
LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)"
|
LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)"
|
||||||
|
|
||||||
### Set Environment Variables
|
### Set Environment Variables
|
||||||
ENV ENABLE_SMTP=FALSE
|
ENV ENABLE_CRON=FALSE \
|
||||||
|
ENABLE_SMTP=FALSE
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
|
RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ services:
|
|||||||
- DB_HOST=example-db
|
- DB_HOST=example-db
|
||||||
- DB_NAME=example
|
- DB_NAME=example
|
||||||
- DB_USER=example
|
- DB_USER=example
|
||||||
- DB_PASSWORD="examplepassword"
|
- DB_PASS="examplepassword"
|
||||||
- DB_DUMP_FREQ=1440
|
- DB_DUMP_FREQ=1440
|
||||||
- DB_DUMP_BEGIN=0000
|
- DB_DUMP_BEGIN=0000
|
||||||
- DB_CLEANUP_TIME=8640
|
- DB_CLEANUP_TIME=8640
|
||||||
|
|||||||
@@ -9,17 +9,16 @@ date >/dev/null
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
### Sanity Test
|
### Sanity Test
|
||||||
if [ !-n "DB_TYPE" ]; then
|
if [ ! -n "$DB_TYPE" ]; then
|
||||||
echo '** [db-backup] ERROR: No Database Type Selected! '
|
echo '** [db-backup] ERROR: No Database Type Selected! '
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ !-n "DB_HOST" ]; then
|
if [ ! -n "$DB_HOST" ]; then
|
||||||
echo '** [db-backup] ERROR: No Database Host Entered! '
|
echo '** [db-backup] ERROR: No Database Host Entered! '
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
### Set Defaults
|
### Set Defaults
|
||||||
COMPRESSION=${COMPRESSION:-GZ}
|
COMPRESSION=${COMPRESSION:-GZ}
|
||||||
DB_DUMP_FREQ=${DB_DUMP_FREQ:-1440}
|
DB_DUMP_FREQ=${DB_DUMP_FREQ:-1440}
|
||||||
@@ -34,9 +33,8 @@ MD5=${MD5:-TRUE}
|
|||||||
SPLIT_DB=${SPLIT_DB:-FALSE}
|
SPLIT_DB=${SPLIT_DB:-FALSE}
|
||||||
TMPDIR=/tmp/backups
|
TMPDIR=/tmp/backups
|
||||||
|
|
||||||
|
|
||||||
### Set the Database Type
|
### Set the Database Type
|
||||||
case "DBTYPE" in
|
case "$DBTYPE" in
|
||||||
"couch" | "couchdb" | "COUCH" | "COUCHDB" )
|
"couch" | "couchdb" | "COUCH" | "COUCHDB" )
|
||||||
DBTYPE=couch
|
DBTYPE=couch
|
||||||
DBPORT=${DB_PORT:-5984}
|
DBPORT=${DB_PORT:-5984}
|
||||||
@@ -81,7 +79,6 @@ function backup_couch() {
|
|||||||
generate_md5
|
generate_md5
|
||||||
compression
|
compression
|
||||||
move_backup
|
move_backup
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function backup_mysql() {
|
function backup_mysql() {
|
||||||
@@ -131,13 +128,13 @@ function backup_pgsql() {
|
|||||||
for db in $DATABASES; do
|
for db in $DATABASES; do
|
||||||
echo "** [db-backup] Dumping database: $db"
|
echo "** [db-backup] Dumping database: $db"
|
||||||
TARGET=pgsql_${db}_${DBHOST}_${now}.sql
|
TARGET=pgsql_${db}_${DBHOST}_${now}.sql
|
||||||
${POSTGRES_PASS_STR} pg_dump -h ${DBHOST} -p ${DBPORT}-U ${DBUSER} $db > ${TMPDIR}/${TARGET}
|
pg_dump -h ${DBHOST} -p ${DBPORT}-U ${DBUSER} $db > ${TMPDIR}/${TARGET}
|
||||||
generate_md5
|
generate_md5
|
||||||
compression
|
compression
|
||||||
move_backup
|
move_backup
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
${POSTGRES_PASS_STR} pg_dump -h ${DBHOST} -U ${DBUSER} $db > ${TMPDIR}/${TARGET}
|
pg_dump -h ${DBHOST} -U ${DBUSER} $db > ${TMPDIR}/${TARGET}
|
||||||
generate_md5
|
generate_md5
|
||||||
compression
|
compression
|
||||||
move_backup
|
move_backup
|
||||||
@@ -146,7 +143,7 @@ function backup_pgsql() {
|
|||||||
|
|
||||||
function backup_redis() {
|
function backup_redis() {
|
||||||
TARGET=redis_${db}_${DBHOST}_${now}.rdb
|
TARGET=redis_${db}_${DBHOST}_${now}.rdb
|
||||||
echo bgsave | redis-cli -h ${DBHOST} -p ${DBPORT} --rdb ${TMPDIR]/${TARGET}
|
echo bgsave | redis-cli -h ${DBHOST} -p ${DBPORT} --rdb ${TMPDIR}/${TARGET}
|
||||||
echo "** [db-backup] Dumping Redis - Flushing Redis Cache First"
|
echo "** [db-backup] Dumping Redis - Flushing Redis Cache First"
|
||||||
sleep 10
|
sleep 10
|
||||||
try=5
|
try=5
|
||||||
@@ -154,14 +151,15 @@ function backup_redis() {
|
|||||||
saved=$(echo 'info Persistence' | redis-cli -h ${DBHOST} -p ${DBPORT} | awk '/rdb_bgsave_in_progress:0/{print "saved"}')
|
saved=$(echo 'info Persistence' | redis-cli -h ${DBHOST} -p ${DBPORT} | awk '/rdb_bgsave_in_progress:0/{print "saved"}')
|
||||||
ok=$(echo 'info Persistence' | redis-cli -h ${DBHOST} -p ${DBPORT} | awk '/rdb_last_bgsave_status:ok/{print "ok"}')
|
ok=$(echo 'info Persistence' | redis-cli -h ${DBHOST} -p ${DBPORT} | awk '/rdb_last_bgsave_status:ok/{print "ok"}')
|
||||||
if [[ "$saved" = "saved" ]] && [[ "$ok" = "ok" ]]; then
|
if [[ "$saved" = "saved" ]] && [[ "$ok" = "ok" ]]; then
|
||||||
generate_md5
|
echo "** [db-backup] Redis Backup Complete"
|
||||||
compression
|
|
||||||
move_backup
|
|
||||||
fi
|
fi
|
||||||
try=$((try - 1))
|
try=$((try - 1))
|
||||||
echo "** [db-backup] Redis Busy - Waiting and retrying in 5 seconds"
|
echo "** [db-backup] Redis Busy - Waiting and retrying in 5 seconds"
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
generate_md5
|
||||||
|
compression
|
||||||
|
move_backup
|
||||||
}
|
}
|
||||||
|
|
||||||
function backup_rethink() {
|
function backup_rethink() {
|
||||||
@@ -230,12 +228,12 @@ echo '** [db-backup] Initialized at at '$(date)
|
|||||||
# make sure the directory exists
|
# make sure the directory exists
|
||||||
mkdir -p $TMPDIR
|
mkdir -p $TMPDIR
|
||||||
|
|
||||||
Define Target name
|
### Define Target name
|
||||||
now=$(date +"%Y%m%d-%H%M%S")
|
now=$(date +"%Y%m%d-%H%M%S")
|
||||||
TARGET=${DBTYPE}_${DBNAME}_${DBHOST}_${now}.sql
|
TARGET=${DBTYPE}_${DBNAME}_${DBHOST}_${now}.sql
|
||||||
|
|
||||||
### Take a Dump
|
### Take a Dump
|
||||||
case "DBTYPE" in
|
case "$DBTYPE" in
|
||||||
"couch" )
|
"couch" )
|
||||||
backup_couch
|
backup_couch
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user