2024-10-10

This commit is contained in:
2024-10-10 12:56:56 +08:00
commit 7b347c848a
2648 changed files with 643965 additions and 0 deletions

97
install/restore+.sh Executable file
View File

@@ -0,0 +1,97 @@
#!/usr/bin/bash
if lsb_release -a|grep Ubuntu ; then
echo "This script is designed for CentOS"
echo "Ubuntu use restore.sh instead, please."
exit 1
fi
# Get backup archive file
if [ ${#} -gt 0 ];then
archive=${1};
else
archive=`ls -r /home/judge/backup | head -1`;
fi
echo "restore archive ${archive}"
# Get database password
OJ_USERNAME=`cat /home/judge/etc/judge.conf | grep OJ_USER_NAME`
OJ_PASSWORD=`cat /home/judge/etc/judge.conf | grep OJ_PASSWORD`
DB_USERNAME=`echo ${OJ_USERNAME:13}`
DB_PASSWORD=`echo ${OJ_PASSWORD:12}`
# create temp directory
mkdir /home/judge/backup/temp
# save database config if interrupted
touch /home/judge/backup/temp/db.conf
echo DB_USERNAME=${DB_USERNAME} >> /home/judge/backup/temp/db.conf
echo DB_PASSWORD=${DB_PASSWORD} >> /home/judge/backup/temp/db.conf
# clear old files
rm -rf /home/judge/data
rm -rf /home/judge/etc
rm -rf /home/judge/src/web
# start restore
tar -xf /home/judge/backup/${archive} -C /home/judge/backup/temp
# restore database
echo "restore database"
mysql -u${DB_USERNAME} -p${DB_PASSWORD} < /home/judge/backup/temp/jol.sql
# restore data directory
echo "restore data directory"
cp -r /home/judge/backup/temp/data /home/judge/data
# restore config files
echo "restore config files"
cp -r /home/judge/backup/temp/etc /home/judge/etc
# restore web files
cp -r /home/judge/backup/temp/src/web /home/judge/src/web
# adjustment judge config file
echo "adjustment judge config file"
CPU=`cat /proc/cpuinfo| grep "processor"| wc -l`
cdbusername=`cat /home/judge/etc/judge.conf | grep OJ_USER_NAME`
cdbpassword=`cat /home/judge/etc/judge.conf | grep OJ_PASSWORD`
ccpu=`cat /home/judge/etc/judge.conf | grep OJ_RUNNING`
sed -i "s/${cdbusername}/OJ_USER_NAME=${DB_USERNAME}/g" /home/judge/etc/judge.conf
sed -i "s/${cdbpassword}/OJ_PASSWORD=${DB_PASSWORD}/g" /home/judge/etc/judge.conf
sed -i "s/${ccpu}/OJ_RUNNING=${CPU}/g" /home/judge/etc/judge.conf
# adjustment web config file
echo "adjustment web config file"
cdbuser=`cat /home/judge/src/web/include/db_info.inc.php | grep static |grep DB_USER`
cdbpass=`cat /home/judge/src/web/include/db_info.inc.php | grep static |grep DB_PASS`
sed -i "s|${cdbuser}|static\ \ \$DB_USER=\"${DB_USERNAME}\";|g" /home/judge/src/web/include/db_info.inc.php
sed -i "s|${cdbpass}|static\ \ \$DB_PASS=\"${DB_PASSWORD}\";|g" /home/judge/src/web/include/db_info.inc.php
chmod 775 -R /home/judge/data
chmod 700 /home/judge/etc/judge.conf
chmod 700 /home/judge/src/web/include/db_info.inc.php
centos7=`cat /etc/os-release | grep PRETTY_NAME | grep CentOS | grep 7 `
ubuntu14=`cat /etc/os-release | grep PRETTY_NAME | grep Ubuntu | grep 14`
ubuntu16=`cat /etc/os-release | grep PRETTY_NAME | grep Ubuntu | grep 16`
ubuntu18=`cat /etc/os-release | grep PRETTY_NAME | grep Ubuntu | grep 18`
if [ -n "${centos7}" ];then
own=apache;
elif [ -n "${ubuntu14}" ];then
own=judge;
elif [ -n "${ubuntu16}" ];then
own=www-data;
elif [ -n "${ubuntu18}" ];then
own=www-data;
fi
chown -R ${own}:${own} /home/judge/data
chown ${own} /home/judge/src/web/include/db_info.inc.php
chown ${own} /home/judge/src/web/upload
# clear temp directory
rm -rf /home/judge/backup/temp