Files
hustoj/install/restore.sh
2024-10-10 12:56:56 +08:00

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