diff --git a/CHANGELOG.md b/CHANGELOG.md index b6636cd..27cb206 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,14 @@ -## 1.2 2017-09-27 Dave Conroy -* Script Cleanup -## 1.1 2017-09-14 Dave Conroy +## 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 -## 1.0 2017-09-14 Dave Conroy +## 1.0 - 2017-09-14 - dave at tiredofit dot ca + * Initial Release * Alpine:Edge diff --git a/Dockerfile b/Dockerfile index 496117a..79603f4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,8 @@ FROM tiredofit/alpine:edge LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)" ### Set Environment Variables - ENV ENABLE_SMTP=FALSE + ENV ENABLE_CRON=FALSE \ + ENABLE_SMTP=FALSE ### Dependencies RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \ @@ -18,7 +19,7 @@ LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)" rm -rf /var/cache/apk/* ### S6 Setup - ADD install / + ADD install / ### Entrypoint Configuration ENTRYPOINT ["/init"] diff --git a/examples/docker-compose.yml b/examples/docker-compose.yml index 1249362..ef87082 100644 --- a/examples/docker-compose.yml +++ b/examples/docker-compose.yml @@ -25,7 +25,7 @@ services: - DB_HOST=example-db - DB_NAME=example - DB_USER=example - - DB_PASSWORD="examplepassword" + - DB_PASS="examplepassword" - DB_DUMP_FREQ=1440 - DB_DUMP_BEGIN=0000 - DB_CLEANUP_TIME=8640 diff --git a/install/etc/s6/services/10-db-backup/run b/install/etc/s6/services/10-db-backup/run index 0b53f88..8b31e27 100755 --- a/install/etc/s6/services/10-db-backup/run +++ b/install/etc/s6/services/10-db-backup/run @@ -3,23 +3,22 @@ date >/dev/null ### Set Debug Mode - sleep 10 - if [ "$DEBUG_MODE" = "TRUE" ] || [ "$DEBUG_MODE" = "true" ]; then - set -x - fi +sleep 10 +if [ "$DEBUG_MODE" = "TRUE" ] || [ "$DEBUG_MODE" = "true" ]; then + set -x +fi ### Sanity Test -if [ !-n "DB_TYPE" ]; then +if [ ! -n "$DB_TYPE" ]; then echo '** [db-backup] ERROR: No Database Type Selected! ' exit 1 fi -if [ !-n "DB_HOST" ]; then +if [ ! -n "$DB_HOST" ]; then echo '** [db-backup] ERROR: No Database Host Entered! ' exit 1 fi - ### Set Defaults COMPRESSION=${COMPRESSION:-GZ} DB_DUMP_FREQ=${DB_DUMP_FREQ:-1440} @@ -34,9 +33,8 @@ MD5=${MD5:-TRUE} SPLIT_DB=${SPLIT_DB:-FALSE} TMPDIR=/tmp/backups - ### Set the Database Type - case "DBTYPE" in + case "$DBTYPE" in "couch" | "couchdb" | "COUCH" | "COUCHDB" ) DBTYPE=couch DBPORT=${DB_PORT:-5984} @@ -60,7 +58,7 @@ TMPDIR=/tmp/backups "postgres" | "postgresql" | "pgsql" | "POSTGRES" | "POSTGRESQL" | "PGSQL" ) DBTYPE=pgsql DBPORT=${DB_PORT:-5432} - [[ ( -n "${DB_PASS}" ) ]] && POSTGRES_PASS_STR="PGPASSWORD=${DBPASS} " + [[ ( -n "${DB_PASS}" ) ]] && POSTGRES_PASS_STR="PGPASSWORD=${DBPASS}" ;; "redis" | "REDIS" ) DBTYPE=redis @@ -81,7 +79,6 @@ function backup_couch() { generate_md5 compression move_backup - done } function backup_mysql() { @@ -131,13 +128,13 @@ function backup_pgsql() { for db in $DATABASES; do echo "** [db-backup] Dumping database: $db" 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 compression move_backup done else - ${POSTGRES_PASS_STR} pg_dump -h ${DBHOST} -U ${DBUSER} $db > ${TMPDIR}/${TARGET} + pg_dump -h ${DBHOST} -U ${DBUSER} $db > ${TMPDIR}/${TARGET} generate_md5 compression move_backup @@ -146,22 +143,23 @@ function backup_pgsql() { function backup_redis() { 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" sleep 10 try=5 while [ $try -gt 0 ] ; do 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"}') - if [[ "$saved" = "saved" ]] && [[ "$ok" = "ok" ]] ; then - generate_md5 - compression - move_backup + if [[ "$saved" = "saved" ]] && [[ "$ok" = "ok" ]]; then + echo "** [db-backup] Redis Backup Complete" fi try=$((try - 1)) echo "** [db-backup] Redis Busy - Waiting and retrying in 5 seconds" sleep 5 done + generate_md5 + compression + move_backup } function backup_rethink() { @@ -219,7 +217,7 @@ echo '** [db-backup] Initialized at at '$(date) if [[ "$target_time" < "$current_time" ]]; then target_time=$(($target_time + 24*60*60)) fi - waittime=$(($target_time - $current_time)) + waittime=$(($target_time - $current_time)) fi sleep $waittime @@ -230,12 +228,12 @@ echo '** [db-backup] Initialized at at '$(date) # make sure the directory exists mkdir -p $TMPDIR - Define Target name +### Define Target name now=$(date +"%Y%m%d-%H%M%S") TARGET=${DBTYPE}_${DBNAME}_${DBHOST}_${now}.sql ### Take a Dump - case "DBTYPE" in + case "$DBTYPE" in "couch" ) backup_couch ;;