2024-10-10
This commit is contained in:
97
install/restore+.sh
Executable file
97
install/restore+.sh
Executable 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
|
||||
Reference in New Issue
Block a user