add backup db.sh
This commit is contained in:
parent
c2907b543a
commit
0715bdafd4
61
backup_db.sh
Executable file
61
backup_db.sh
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# usage: <script> <container-name> <database-type>
|
||||||
|
#
|
||||||
|
# exports the database of a running docker container in a dump in $BACKUP_DIR/$CONTAINER_NAME/
|
||||||
|
|
||||||
|
BACKUP_DIR=/DATA/BACKUP/dbdumps
|
||||||
|
|
||||||
|
# Check container existence
|
||||||
|
|
||||||
|
CONTAINER="$1"
|
||||||
|
|
||||||
|
if ! docker ps | grep -q "$CONTAINER"
|
||||||
|
then
|
||||||
|
echo "The container $CONTAINER doesn't exist or doesn't run"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check database type
|
||||||
|
|
||||||
|
TYPE="$2"
|
||||||
|
|
||||||
|
COMMAND=""
|
||||||
|
|
||||||
|
case "$TYPE" in
|
||||||
|
postgresql)
|
||||||
|
POSTGRES_USER=$(docker exec "$CONTAINER" env | grep POSTGRES_USER | cut -d= -f2)
|
||||||
|
COMMAND="pg_dumpall -c -U $POSTGRES_USER"
|
||||||
|
EXTENSION=sql
|
||||||
|
;;
|
||||||
|
mariadb)
|
||||||
|
MARIADB_USER=$(docker exec "$CONTAINER" env | grep MYSQL_USER | cut -d= -f2)
|
||||||
|
MARIADB_PASSWORD=$(docker exec "$CONTAINER" env | grep MYSQL_PASSWORD | cut -d= -f2)
|
||||||
|
COMMAND="mariadb-dump -u $MARIADB_USER --password=$MARIADB_PASSWORD --all-databases"
|
||||||
|
EXTENSION=sql
|
||||||
|
;;
|
||||||
|
mongodb)
|
||||||
|
COMMAND="mongodump --archive"
|
||||||
|
EXTENSION=mongodump
|
||||||
|
;;
|
||||||
|
ldap-config)
|
||||||
|
COMMAND="slapcat -n 0"
|
||||||
|
EXTENSION=config.ldif
|
||||||
|
;;
|
||||||
|
ldap-content)
|
||||||
|
COMMAND="slapcat -n 1"
|
||||||
|
EXTENSION=content.ldif
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "I don't know $TYPE database type."
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Ensure directory exists
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR/$CONTAINER"
|
||||||
|
|
||||||
|
# Export database
|
||||||
|
|
||||||
|
docker exec "$CONTAINER" $COMMAND > "$BACKUP_DIR/$CONTAINER/dump.$EXTENSION"
|
||||||
|
exit $?
|
Loading…
Reference in New Issue
Block a user