summaryrefslogtreecommitdiff
path: root/docker_tools/docker_backup_all_sql.sh
blob: eebe93e82099b21c40e9bbf32d8ee6d32d09dba8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

# Please read the README.md distributed along this script

#set -x

REGEX_MATCH="mariadb|mysql"

NAMES_IMAGES=`docker ps --format '{{.Names}}\t{{.Image}}'`
NAMES=$(echo -e  "${NAMES_IMAGES}" | awk '{print $1}')
IMAGES=$(echo -e  "${NAMES_IMAGES}" | awk '{print $2}')

IFS=$'\n'

for name_image in $NAMES_IMAGES; do

	NAME=$(echo -e  "${name_image}" | awk -F "\t" '{print $1}')
	IMAGE=$(echo -e  "${name_image}" | awk -F "\t" '{print $2}')

	TIMESTAMP=`date +"%Y%m%d_%H%M%S"`
	FILENAME=${TIMESTAMP}_$IMAGE_$NAME.sql

	if [[ $IMAGE =~ $REGEX_MATCH ]]; then 

		echo --------------------------------------------------------------
		echo Found Matching Image: $IMAGE running in cotnainer named $NAME

		#docker inspect $NAME | grep MYSQL_ROOT_PASSWORD 
		PASS=$(docker inspect $NAME | grep MYSQL_ROOT_PASSWORD | sed  's/^.*"[^=]*=\([^"]*\).*$/\1/')
		echo  Inspected container : Extracted Root Password: xxxxxx
		echo  Executing mysqldump to File $NAME.sql
		#--single-transaction consider vor InnoDB
                docker exec $NAME mysqldump -p$PASS --lock-tables --routines --triggers --all-databases > $FILENAME

	fi

done