You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
2.1 KiB

  1. #!/bin/bash
  2. echo "####################################################################"
  3. echo "# docker_mariadb get_databases_from_customer script #"
  4. echo "# Dennis Buchhorn - bucde@b-eit.de #"
  5. echo "####################################################################"
  6. echo "# WARNING: password is plain text! #"
  7. #echo "# #"
  8. echo "####################################################################"
  9. echo ""
  10. MARIADB_CONTAINER_NAME=""
  11. MARIADB_ROOT_PASSWORD=""
  12. TMP=$(docker container ls --format "{{.Names}}")
  13. for ENTRY in $TMP; do
  14. CONTAINER_LIST+=($ENTRY)
  15. done
  16. if [[ ${#CONTAINER_LIST[@]} > 0 ]]; then
  17. echo "List of all running containers:"
  18. for I in ${!CONTAINER_LIST[@]}; do
  19. echo " Number [$I]: ${CONTAINER_LIST[$I]}"
  20. done
  21. else
  22. echo "No containers running!"
  23. exit 1
  24. fi
  25. read -p "Enter mariadb container number: " TMP
  26. MARIADB_CONTAINER_NAME="${CONTAINER_LIST[$TMP]}"
  27. read -p "Enter mariadb root password: " MARIADB_ROOT_PASSWORD
  28. rm -f tmp
  29. touch tmp
  30. echo "SELECT user FROM mysql.user;" >> tmp
  31. TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN)
  32. rm -f tmp
  33. for ENTRY in $TMP; do
  34. if ! [[ $ENTRY == "root" || $ENTRY == "mariadb.sys" ]]; then
  35. CUSTOMER_LIST+=($ENTRY)
  36. fi
  37. done
  38. if [[ ${CUSTOMER_LIST[@]} > 0 ]]; then
  39. echo "List of all customers:"
  40. for I in ${!CUSTOMER_LIST[@]}; do
  41. echo " Number [$I]: ${CUSTOMER_LIST[$I]}"
  42. done
  43. else
  44. echo "No customers!"
  45. exit 1
  46. fi
  47. read -p "Enter customer number: " TMP
  48. MARIADB_CUSTOMER_NAME="${CUSTOMER_LIST[$TMP]}"
  49. rm -f tmp
  50. touch tmp
  51. echo "SELECT db FROM mysql.db WHERE user='$MARIADB_CUSTOMER_NAME';" >> tmp
  52. TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN)
  53. rm -f tmp
  54. for ENTRY in $TMP; do
  55. DATABASE_LIST+=($ENTRY)
  56. done
  57. if [[ ${#DATABASE_LIST[@]} > 0 ]]; then
  58. echo "List of all databases from $MARIADB_CUSTOMER_NAME:"
  59. for I in ${!DATABASE_LIST[@]}; do
  60. echo " ${DATABASE_LIST[$I]}"
  61. done
  62. else
  63. echo "No databases!"
  64. fi
  65. rm -f tmp
  66. echo "Done!"