dev/toolbox/restore.sh
2024-03-28 12:58:52 +02:00

87 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
R="\e[1;31m"
G="\e[1;32m"
B="\e[1;34m"
W="\e[1;97m"
E="\e[00m"
DBUSER="root"
DBPASS="1234"
TAR=$1
NAME=$(echo $TAR | awk -F\. '{print $1}' | awk -F- '{print $1}')
echo
[ $# -lt 1 ] && echo -e "Tarball argument is missing" && exit
[ $# -gt 1 ] && echo -e "Too many arguments" && exit
[ -d ${NAME} ] && echo -e "Directory ${R}${NAME}${E} already exist" && exit
mysql -uroot -p1234 -e 'show databases' | grep "^${NAME}$" &> /dev/null
[ $? -eq 0 ] && echo -e "Database ${R}${NAME}${E} already exist" && exit
function log() {
if [ $1 == 0 ]; then
echo -e " ${G}[ OK ]${E}"
return 0
else
echo -e " ${R}[FAIL]${E}"
exit
fi
}
function verify_integrity() {
echo -ne " 🔎 Verify file $1"
if [[ "$1" =~ \.bz2$ ]]; then
bzip2 -tv $1
return $?
fi
if [[ "$1" =~ \.gz$ ]]; then
gzip -t $1
return $?
fi
if [[ "$1" =~ \.tar$ ]]; then
tar f $1
return $?
fi
return 1
}
function extract_tarball() {
echo -ne " 📦 Extract tarball $1"
if [[ "$1" =~ \.bz2$ ]]; then
tar jxf $1
return $?
fi
if [[ "$1" =~ \.gz$ ]]; then
tar zxf $1
return $?
fi
if [[ "$1" =~ \.tar$ ]]; then
tar xf $1
return $?
fi
}
verify_integrity ${TAR}
log $?
extract_tarball $TAR
log $?
echo -ne " 🐬 Create database $NAME"
mysql -u${DBUSER} -p${DBPASS} -e "create database $NAME"
log $?
echo -ne " 🐬 Create db user $NAME"
mysql -u${DBUSER} -p${DBPASS} -e "CREATE USER $NAME@localhost IDENTIFIED BY '1234'"
mysql -u${DBUSER} -p${DBPASS} -e "GRANT ALL ON $NAME.* TO $NAME@localhost"
log $?
echo -ne " 🐬 Import $NAME.sql"
mysql -u${DBUSER} -p${DBPASS} $NAME < $NAME.sql
log $?
ls -ld $NAME/ --color=auto
ls -l /var/www/site[1234567890] --color=auto