-
-
Save Demontager/1a1cd52860f87e4a489c to your computer and use it in GitHub Desktop.
| #!/bin/sh | |
| # Batch Mysql databases and users' priveleges restore | |
| # Backup directory | |
| BDIR="/home/www/backup/mysql-15-Apr-2014" | |
| LOG="restore.txt" | |
| DATE=`date +%d-%b-%Y_%H:%M:%S` | |
| DBL=`find "$BDIR" -type f \( ! -iname "*.sh" -a ! -iname "*.sql" -a ! -iname "*.txt" \) -print0 | xargs -0 basename -a|awk -F. '{print $1}'` | |
| echo $DBL | |
| exit 0 | |
| # Mysql details | |
| DBUSER="root" | |
| DBPASS="pass" | |
| # Create empty databases | |
| for db in $DBL; do | |
| mysql -v -u"$DBUSER" -p"$DBPASS" -e "CREATE DATABASE IF NOT EXISTS \`$db\`" >> "$BDIR/$LOG" 2>&1 | |
| done | |
| # Restore users and their privileges | |
| mysql -v -u"$DBUSER" -p"$DBPASS" < "$BDIR/users.sql" >> "$BDIR/$LOG" 2>&1 | |
| # Restore databases from archives | |
| for arch in $DBL; do | |
| gunzip < "$BDIR/$arch.gz" | mysql -f -u"$DBUSER" -p"$DBPASS" $arch >> "$BDIR/$LOG" 2>&1 | |
| done | |
| # Clean up log | |
| sed -e '/^$/d' "$BDIR/$LOG"|uniq -u|uniq > "$BDIR/tmp.txt" | |
| rm "$BDIR/$LOG" | |
| mv "$BDIR/tmp.txt" "$BDIR/$DATE.$LOG" | |
declare -a dbs
while read; do
REPLY="${REPLY##/}"
dbs+=("${REPLY%.}")
done < <(find /usr/local/www/apache22/data/backup/mysql-15-Apr-2014/ -type f -iname "*gz")
printf "%s\n" "${dbs[@]}"
root@debian:~/scripts# ./test.sh
home/www/backup/mysql-15-Apr-2014/escswim.gz
home/www/backup/mysql-15-Apr-2014/sauvig.gz
home/www/backup/mysql-15-Apr-2014/amitysource.gz
home/www/backup/mysql-15-Apr-2014/ennixtalks.gz
home/www/backup/mysql-15-Apr-2014/voxl.gz
home/www/backup/mysql-15-Apr-2014/pdalady.gz
home/www/backup/mysql-15-Apr-2014/minecraft36
root@debian:~/scripts# find /home/www/backup/mysql-15-Apr-2014 -type f ( ! -iname ".sh" -a ! -iname ".sql" -a ! -iname "*.txt" ) -print|awk -F / '{print $NF}'|awk -F . '{print $1}'
escswim
sauvig
amitysource
ennixtalks
voxl
pdalady
minecraft365
ultratouch
printcounter
piyazilim
forexinvest
bestwestern
belcity
find /usr/local/www/apache22/data/backup/mysql-15-Apr-2014/ -type f -type f ( ! -iname ".sh" -a ! -iname ".sql" -a ! -iname "*.txt" ) -print0 | xargs -0 basename -a|awk -F. '{print $1}'
chicot
nokia
tempo
ferialab
nbasuper
mosaicsa
zootovar
wnxwzx
organhal
satbois
max-cook