39 lines
1.5 KiB
Bash
Executable File
39 lines
1.5 KiB
Bash
Executable File
#/bin/bash
|
|
TARBZNAME=`find -name "hustoj_*.tar.bz2"`
|
|
if [ $# != 1 ] ; then
|
|
echo "USAGE: sudo $0 $TARBZNAME"
|
|
echo " e.g.: sudo $0 hustoj_xxxxxxx.tar.bz2"
|
|
echo " tar.bz2 should be created by bak.sh, default location : /var/backups/ "
|
|
exit 1;
|
|
fi
|
|
|
|
DATE=`date +%Y%m%d%H%M%S`
|
|
BAKDATE=`echo $1 |awk -F\. '{print $1}'|awk -F_ '{print $2}'`
|
|
config="/home/judge/etc/judge.conf"
|
|
SERVER=`cat $config|grep 'OJ_HOST_NAME' |awk -F= '{print $2}'`
|
|
USER=`cat $config|grep 'OJ_USER_NAME' |awk -F= '{print $2}'`
|
|
PASSWORD=`cat $config|grep 'OJ_PASSWORD' |awk -F= '{print $2}'`
|
|
DATABASE=`cat $config|grep 'OJ_DB_NAME' |awk -F= '{print $2}'`
|
|
mkdir hustoj-restore
|
|
cd hustoj-restore
|
|
MAIN="../$1"
|
|
/home/judge/src/install/bak.sh
|
|
tar xjf $MAIN
|
|
mv /home/judge/data /home/judge/data.del.$DATE
|
|
mv home/judge/data /home/judge/
|
|
chown www-data -R /home/judge/data
|
|
mv /home/judge/src/web/upload /home/judge/src/web/upload.del.$DATE
|
|
mv home/judge/src/web/upload /home/judge/src/web/
|
|
chown www-data -R /home/judge/src/web/
|
|
bzip2 -d var/backups/db_${BAKDATE}.sql.bz2
|
|
sed -i 's/COLLATE=utf8mb4_0900_ai_ci//g' var/backups/db_${BAKDATE}.sql
|
|
sed -i 's/COLLATE utf8mb4_0900_ai_ci//g' var/backups/db_${BAKDATE}.sql
|
|
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' var/backups/db_${BAKDATE}.sql
|
|
if ! mysql -h $SERVER -u$USER -p$PASSWORD $DATABASE < var/backups/db_${BAKDATE}.sql ; then
|
|
mysql $DATABASE < var/backups/db_${BAKDATE}.sql
|
|
fi
|
|
if ! mysql -h $SERVER -u$USER -p$PASSWORD $DATABASE < /home/judge/src/install/update.sql ; then
|
|
mysql $DATABASE < /home/judge/src/install/update.sql
|
|
fi
|
|
|