summaryrefslogtreecommitdiff
path: root/docker_tools/docker_backup_all_sql.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker_tools/docker_backup_all_sql.sh')
-rwxr-xr-xdocker_tools/docker_backup_all_sql.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/docker_tools/docker_backup_all_sql.sh b/docker_tools/docker_backup_all_sql.sh
new file mode 100755
index 0000000..eebe93e
--- /dev/null
+++ b/docker_tools/docker_backup_all_sql.sh
@@ -0,0 +1,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
+