isp-tools

Unnamed repository; edit this file 'description' to name the repository.
git clone http://git.code.weiherhei.de/isp-tools.git
Log | Files | Refs

commit 45d227eed3516521be6fdd3f73d942b9186999ce
parent b9b63d4f94e27065a3319db58952d93b056cd6ca
Author: root <root@h1657876.stratoserver.net>
Date:   Sat, 13 Apr 2019 21:32:01 +0200

Schema nur löschen, wenn keine Tabellen enthalten sind.

Diffstat:
update_database | 28+++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/update_database b/update_database @@ -36,11 +36,11 @@ function sql_admin { sql=$1 #echo "SQL: $sql" #return - mysql -u $MYSQL_ADMIN_USER -p$MYSQL_ADMIN_PASSWORD -se "$sql" $MYSQL_DATABASE + mysql -u root -pss19a -se "$sql" $MYSQL_DATABASE } -sql "select domain,CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60)) FROM domain WHERE active=1"|while read domain dbname; do +sql "select domain,CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60)) FROM domain WHERE active=1 AND x_db=1"|while read domain dbname; do # Den Benutzer zur Domain zu finden. Es ist der (hoffentlich einzige) <Benutzername>@webmaster..., der für die Domain berechtigt ist. db=`sql_admin "SELECT schema_name from information_schema.schemata where schema_name='$dbname'"` @@ -95,7 +95,7 @@ sql_admin "SELECT schema_name from information_schema.schemata where schema_name #echo "Prüfe $dbname auf Notwendigkeit" # Existiert die Domain noch in der Verwaltung? - exist=`sql "SELECT domain FROM domain where CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60))='$dbname'"` + exist=`sql "SELECT domain FROM domain where CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60))='$dbname' AND x_db=1"` #exist= if [ ! "$exist" ]; then @@ -103,18 +103,24 @@ sql_admin "SELECT schema_name from information_schema.schemata where schema_name echo "" echo "Datenbank $dbname wird entfernt, da diese in der Verwaltung nicht mehr existiert" - sql_admin "select distinct grantee as dbuser FROM information_schema.schema_privileges WHERE grantee regexp '^.?[ur]_.+\$' AND table_schema='$dbname'"|while read dbuser; do + tablecount=`sql_admin "SELECT count(*) from information_schema.tables where table_schema='$dbname'"` + if [ $tablecount -gt 0 ]; then + echo "Datenbank $dbname ist nicht leer und wird nicht geloescht!" + else + echo "Datenbank $dbname ist leer und wird gelöscht." - echo "Lösche $dbuser" - sql_admin "DROP USER $dbuser" - done + sql_admin "select distinct grantee as dbuser FROM information_schema.schema_privileges WHERE grantee regexp '^.?[ur]_.+\$' AND table_schema='$dbname'"|while read dbuser; do + + echo "Lösche $dbuser" + sql_admin "DROP USER $dbuser" + done - echo "Lösche Datenbank $dbname" - sql_admin "DROP DATABASE $dbname" + echo "Lösche Datenbank $dbname" + sql_admin "DROP DATABASE $dbname" - sql_admin "FLUSH PRIVILEGES" - + sql_admin "FLUSH PRIVILEGES" + fi fi done