1.1 - Added CouchDB

This commit is contained in:
Dave Conroy
2017-09-13 20:30:47 -07:00
parent efe6f26fe2
commit 6fe85eeaf7
3 changed files with 28 additions and 9 deletions

View File

@@ -1,3 +1,6 @@
## 1.1 - 2017-09-14 - dave at tiredofit dot ca
* Added CouchDB
## 1.0 - 2017-09-14 - dave at tiredofit dot ca ## 1.0 - 2017-09-14 - dave at tiredofit dot ca
* Initial Release * Initial Release
* Alpine:Edge

View File

@@ -4,7 +4,7 @@
This will build a container for backing up multiple type of DB Servers This will build a container for backing up multiple type of DB Servers
Currently backs up InfluxDB, MySQL, MongoDB Postgres, Redis, Rethink servers. Currently backs up CouchDB, InfluxDB, MySQL, MongoDB Postgres, Redis, Rethink servers.
* dump to local filesystem * dump to local filesystem
* select database user and password * select database user and password
@@ -79,7 +79,7 @@ Along with the Environment Variables from the [Base image](https://hub.docker.co
| Parameter | Description | | Parameter | Description |
|-----------|-------------| |-----------|-------------|
| `DB_TYPE` | Type of DB Server to backup `influx` `mysql` `pgsql` `mongo` `redis` `rethink` | `DB_TYPE` | Type of DB Server to backup `couch` `influx` `mysql` `pgsql` `mongo` `redis` `rethink`
| `DB_SERVER` | Server Hostname e.g. `mariadb` | `DB_SERVER` | Server Hostname e.g. `mariadb`
| `DB_NAME` | Schema Name e.g. `database` | `DB_NAME` | Schema Name e.g. `database`
| `DB_USER` | username for the database - use `root` to backup all MySQL of them. | `DB_USER` | username for the database - use `root` to backup all MySQL of them.

View File

@@ -37,6 +37,10 @@ TMPDIR=/tmp/backups
### Set the Database Type ### Set the Database Type
case "DBTYPE" in case "DBTYPE" in
"couch" | "couchdb" | "COUCH" | "COUCHDB" )
DBTYPE=couch
DBPORT=${DB_PORT:-5984}
;;
"influx" | "influxdb" | "INFLUX" | "INFLUXDB" ) "influx" | "influxdb" | "INFLUX" | "INFLUXDB" )
DBTYPE=influx DBTYPE=influx
DBPORT=${DB_PORT:-8088} DBPORT=${DB_PORT:-8088}
@@ -71,6 +75,15 @@ TMPDIR=/tmp/backups
esac esac
### Functions ### Functions
function backup_couch() {
TARGET=couch_${DBNAME}_${DBHOST}_${now}.txt
curl -X GET http://${DBHOST}:${DBPORT}/${DBNAME}/ all docs? include docs=true >${TMPDIR}/${TARGET}
generate_md5
compression
move_backup
done
}
function backup_mysql() { function backup_mysql() {
if [ "$SPLIT_DB" = "TRUE" ] || [ "$SPLIT_DB" = "true" ]; then if [ "$SPLIT_DB" = "TRUE" ] || [ "$SPLIT_DB" = "true" ]; then
DATABASES=`mysql -h $DBHOST -u$DBUSER -p$DBPASS --batch -e "SHOW DATABASES;" | grep -v Database|grep -v schema` DATABASES=`mysql -h $DBHOST -u$DBUSER -p$DBPASS --batch -e "SHOW DATABASES;" | grep -v Database|grep -v schema`
@@ -223,23 +236,26 @@ echo '** [db-backup] Initialized at at '$(date)
### Take a Dump ### Take a Dump
case "DBTYPE" in case "DBTYPE" in
"couch" )
backup_couch
;;
"influx" ) "influx" )
function_backup_influx backup_influx
;; ;;
"mysql" ) "mysql" )
function_backup_mysql backup_mysql
;; ;;
"mongo" ) "mongo" )
function_backup_mongo backup_mongo
;; ;;
"pgsql" ) "pgsql" )
function_backup_pgsql backup_pgsql
;; ;;
"redis" ) "redis" )
function_backup_redis backup_redis
;; ;;
"rethink" ) "rethink" )
function_backup_rethink backup_rethink
;; ;;
esac esac