Скрипт создания и удаления пользователей в mysql
Задача – создать пользователя и пароль для mysql.
Именем пользователя будет email, преобразованный следующим образом:
– точки и @заменены на `_`;
– ограничение длины в 15 символов – будте произведено `обрезание` длины username – первые 15 символов.
Скрипт создания пользователя mysql и генерации пароля
#!/bin/bash DATE=`/bin/date +%Y_%m_%d__%H_%M` USERNAME=$1 DBNAME=$2 dbpassword="" ####ПОДКЛЮЧЕНИЕ ИДЕТ ЧЕРЕЗ СОЗДАННЫЙ ФАЙЛ ##### ###cat ~/.my.cnf #[client] #user=root #password=password ################### # replace "-" with "_" for database username #for USERNAME in $USERNAMES #do # create random password ###УБИРАЕМ СИМВОЛЫ `.` и `@` И ОБРЕЗАЕМ ДО 15 СИМВОЛОВ echo ${USERNAME//\./\_} | cut -c1-16 > /tmp/username.txt NAMENEW=`cat /tmp/username.txt` echo ${NAMENEW//\@/\_} ###ГЕНИРИМ ПАРОЛЬ 12 СИМВОЛОВ PASSWDDB="$(openssl rand -base64 12)" echo "CREATING USER echo ${NAMENEW//\@/\_} WITH PASSWORD $PASSWDDB" ###CREATING USER IN MYSQL mysql -u root << EOF CREATE USER ${NAMENEW//\@/\_}@'%' IDENTIFIED BY '${PASSWDDB}'; GRANT SELECT ON ${DBNAME}.* TO '${NAMENEW//\@/\_}'@'%' IDENTIFIED BY '${PASSWDDB}'; GRANT SELECT ON ${DBNAME}.* TO '${NAMENEW//\@/\_}'@localhost IDENTIFIED BY '${PASSWDDB}'; FLUSH PRIVILEGES; exit EOF ####SENDING BY TELEGRAM#### sh /root/scripts/telegram.sh "${NAMENEW//\@/\_} created with password $PASSWDDB" #####SEND TO FILE########### echo "${NAMENEW//\@/\_} $PASSWDDB $DATE" > /root/scripts/userslist.txt ####REMOVE TEMOP FILE######## rm /tmp/username.txt ####CAT CURRENT USERLIST############## cat /root/scripts/userslist.txt;
Скрипт удаления пользователя mysql
#!/bin/bash DATE=`/bin/date +%Y_%m_%d__%H_%M` USERNAME=$1 ###УБИРАЕМ СИМВОЛЫ `.` и `@` И ОБРЕЗАЕМ ДО 15 СИМВОЛОВ echo ${USERNAME//\./\_} | cut -c1-16 > /tmp/${USERNAME//\./\_} NAMENEW=`cat /tmp/${USERNAME//\./\_}` mysql -u root << EOF DROP USER ${NAMENEW//\@/\_}@'%'; DROP USER ${NAMENEW//\@/\_}@localhost; FLUSH PRIVILEGES; exit EOF ####SENDING BY TELEGRAM#### sh /root/scripts/telegram.sh "${NAMENEW//\@/\_} DROPED" #####SEND TO FILE########### echo "${NAMENEW//\@/\_} $DATE" >> /root/scripts/userslist_dropped.txt ####REMOVE TEMOP FILE######## rm /tmp/${USERNAME//\./\_} ####CAT CURRENT USERLIST############## cat /root/scripts/userslist_dropped.txt;