function mysql_tool () { while : do PS3='Please enter your choice: ' echo "Press (1) fuer Datenbank Pruefung." echo "Press (2) fuer Datenbank Dump." echo "Press (3) fuer Datenbank Drop." echo "Press (4) fuer Datenbank Restore." echo "Press (5) fuer Backup download." echo "Press (6) fuer Datenbank zusammen mergen." echo "Press (q) fuer QUIT." read -n1 wahl echo "" if [ "$wahl" == "q" ] then break fi case $wahl in "1") echo "Datenbank Name eingeben:" read db_name echo "Datenbank-Version MySQL 8:[y/n]:" read -n1 db_ver echo "" db_host=localhost read -s -p "Datenbank Passwort:" MYSQL_PWD if [ "$db_ver" == "y" ] then db_host=$(awk '/mysql80.local/ {print $1}' /etc/hosts) fi echo [client] > $HOME/tmp/.my.cnf echo "host=$db_host" >> $HOME/tmp/.my.cnf echo "port=3307" >> $HOME/tmp/.my.cnf echo "user=$db_name" >> $HOME/tmp/.my.cnf echo "password=$MYSQL_PWD" >> $HOME/tmp/.my.cnf echo "" echo "Starte die Pruefung der Datenbank $db_name." mysqlcheck --defaults-extra-file="$HOME/tmp/.my.cnf" -c --all-databases rm $HOME/tmp/.my.cnf ;; "2") echo "Datenbank Name eingeben:" read db_name echo "Datenbank-Version MySQL 8:[y/n]:" read -n1 db_ver echo "" db_host=localhost read -s -p "Datenbank Passwort:" MYSQL_PWD if [ "$db_ver" == "y" ] then db_host=$(awk '/mysql80.local/ {print $1}' /etc/hosts) fi echo [client] > $HOME/tmp/.my.cnf echo "host=$db_host" >> $HOME/tmp/.my.cnf echo "port=3307" >> $HOME/tmp/.my.cnf echo "user=$(echo "$db_name"|awk -F/ '{print $NF}'|awk -F_ '{print $1}')" >> $HOME/tmp/.my.cnf echo "password=$MYSQL_PWD" >> $HOME/tmp/.my.cnf echo "" echo "Zielverzeichnis eingeben:" echo "Default = html" read target_folder if [ ! -n "target_folder" ] then target_folder=html fi echo "Starte einen Datenbank Dump fuer Datenbank $db_name nach $target_folder." mysqldump --defaults-extra-file=$HOME/tmp/.my.cnf $db_name | gzip > "$HOME/$target_folder/$db_name$(date +_%M-%H-%d-%m-%Y).sql.gz" rm $HOME/tmp/.my.cnf ;; "3") echo "Datenbank Name eingeben:" read db_name echo "Datenbank-Version MySQL 8:[y/n]:" read -n1 db_ver echo "" db_host=localhost read -s -p "Datenbank Passwort:" MYSQL_PWD if [ "$db_ver" == "y" ] then db_host=$(awk '/mysql80.local/ {print $1}' /etc/hosts) fi echo [client] > $HOME/tmp/.my.cnf echo "host=$db_host" >> $HOME/tmp/.my.cnf echo "port=3307" >> $HOME/tmp/.my.cnf echo "user=$db_name" >> $HOME/tmp/.my.cnf echo "password=$MYSQL_PWD" >> $HOME/tmp/.my.cnf echo "" echo "Starte drop fuer Datenbank $db_name." mysql --defaults-extra-file="$HOME/tmp/.my.cnf" -e "SHOW TABLES FROM $db_name"|grep -v "Tables_in_$db_name"|while read a do mysql --defaults-extra-file="$HOME/tmp/.my.cnf" -e "DROP TABLE $db_name"."$a" done rm $HOME/tmp/.my.cnf ;; "4") echo "Datenbank Name eingeben:" read db_name echo "Datenbank-Version MySQL 8:[y/n]:" read -n1 db_ver echo "" db_host=localhost read -s -p "Datenbank Passwort:" MYSQL_PWD if [ "$db_ver" == "y" ] then db_host=$(awk '/mysql80.local/ {print $1}' /etc/hosts) fi echo [client] > $HOME/tmp/.my.cnf echo "host=$db_host" >> $HOME/tmp/.my.cnf echo "port=3307" >> $HOME/tmp/.my.cnf echo "user=$(echo "$db_name"|awk -F/ '{print $NF}'|awk -F_ '{print $1}'|awk -F. '{print $1}')" >> $HOME/tmp/.my.cnf echo "password=$MYSQL_PWD" >> $HOME/tmp/.my.cnf echo "" ndb_name=$(echo $db_name|awk -F/ '{print $NF}'|awk -F_ '{print $1}'|awk -F. '{print $1}') echo "Starte Restore fuer Datenbank $ndb_name." datend=$(echo $HOME/$db_name|awk -F. '{print $NF}') if [ "$datend" == "gz" ] then zcat $HOME/$db_name|mysql --defaults-extra-file="$HOME/tmp/.my.cnf" $ndb_name else cat $HOME/$db_name|mysql --defaults-extra-file="$HOME/tmp/.my.cnf" $ndb_name fi rm $HOME/tmp/.my.cnf ;; "5") echo -n "Backupserver eingeben:" read backup_serv echo -n "Benutzername eingeben:" read ftp_uname read -s -p "FTP Passwort:" FTP_PWD echo "machine $backup_serv" > $HOME/.netrc echo "login $ftp_uname" >> $HOME/.netrc echo "password $FTP_PWD" >> $HOME/.netrc echo "" wget_verz="" while : do exec wget -O - ftp://"$backup_serv":21/"$wget_verz" 2>/dev/null|grep '^ '|sed 's/ "$targetdb" find $infold -maxdepth 1 -type f -name $indb\*schema.sql|grep -v schema-post.sql|while read a do cat "$a" 2>/dev/null >> "$targetdb" echo "$(basename "$a") zu $(basename "$targetdb") erfolgreich hinzugefuegt" done echo "# Schemas der Datenbank $indb zu $targetdb erfolgreich hinzugefuegt" find $infold -maxdepth 1 -type f -name $indb\*00000.sql|grep -v schema-post.sql|while read a do cat "$a" 2>/dev/null >> "$targetdb" echo "$(basename "$a") zu $(basename "$targetdb") erfolgreich hinzugefuegt" done echo "# Tables der Datenbank $indb erfolgreich in Datenbank $targetdb hinzugefuegt." else echo "Benutzer Abbruch" exit 1 fi else find $infold -maxdepth 1 -type f -name $indb\*schema.sql|grep -v schema-post.sql|while read a do cat "$a" 2>/dev/null >> "$targetdb" echo "$(basename "$a") zu $(basename "$targetdb") erfolgreich hinzugefuegt" done echo "# Schemas der Datenbank $indb zu $targetdb erfolgreich hinzugefuegt" find $infold -maxdepth 1 -type f -name $indb\*00000.sql|grep -v schema-post.sql|while read a do cat "$a" 2>/dev/null >> "$targetdb" echo "$(basename "$a") zu $(basename "$targetdb") erfolgreich hinzugefuegt" done echo "# Tables der Datenbank $indb erfolgreich in Datenbank $targetdb hinzugefuegt." fi ;; *) echo "invalid option $REPLY" ;; esac done }