#!/bin/bash echo "####################################################################" echo "# docker_mariadb get_databases_from_customer script #" echo "# Dennis Buchhorn - bucde@b-eit.de #" echo "####################################################################" echo "# WARNING: password is plain text! #" #echo "# #" echo "####################################################################" echo "" MARIADB_CONTAINER_NAME="" MARIADB_ROOT_PASSWORD="" TMP=$(docker container ls --format "{{.Names}}") for ENTRY in $TMP; do CONTAINER_LIST+=($ENTRY) done if [[ ${#CONTAINER_LIST[@]} > 0 ]]; then echo "List of all running containers:" for I in ${!CONTAINER_LIST[@]}; do echo " Number [$I]: ${CONTAINER_LIST[$I]}" done else echo "No containers running!" exit 1 fi read -p "Enter mariadb container number: " TMP MARIADB_CONTAINER_NAME="${CONTAINER_LIST[$TMP]}" read -p "Enter mariadb root password: " MARIADB_ROOT_PASSWORD rm -f tmp touch tmp echo "SELECT user FROM mysql.user;" >> tmp TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN) rm -f tmp for ENTRY in $TMP; do if ! [[ $ENTRY == "root" || $ENTRY == "mariadb.sys" ]]; then CUSTOMER_LIST+=($ENTRY) fi done if [[ ${CUSTOMER_LIST[@]} > 0 ]]; then echo "List of all customers:" for I in ${!CUSTOMER_LIST[@]}; do echo " Number [$I]: ${CUSTOMER_LIST[$I]}" done else echo "No customers!" exit 1 fi read -p "Enter customer number: " TMP MARIADB_CUSTOMER_NAME="${CUSTOMER_LIST[$TMP]}" rm -f tmp touch tmp echo "SELECT db FROM mysql.db WHERE user='$MARIADB_CUSTOMER_NAME';" >> tmp TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN) rm -f tmp for ENTRY in $TMP; do DATABASE_LIST+=($ENTRY) done if [[ ${#DATABASE_LIST[@]} > 0 ]]; then echo "List of all databases from $MARIADB_CUSTOMER_NAME:" for I in ${!DATABASE_LIST[@]}; do echo " ${DATABASE_LIST[$I]}" done else echo "No databases!" fi rm -f tmp echo "Done!"