#!/bin/bash DATE=`date +%Y%m%d` OLD=`date -d"1 day ago" +"%Y%m%d"` OLD3=`date -d"3 day ago" +"%Y%m%d"` 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}'` PORT=`cat $config|grep 'OJ_PORT_NUMBER' |awk -F= '{print $2}'` echo "delete from source_code where solution_id in (select solution_id from solution where problem_id=0 and result>4);"|mysql -h $SERVER -P $PORT -u$USER -p$PASSWORD $DATABASE echo "delete from source_code_user where solution_id in (select solution_id from solution where problem_id=0 and result>4);"|mysql -h $SERVER -P $PORT -u$USER -p$PASSWORD $DATABASE echo "delete from runtimeinfo where solution_id in (select solution_id from solution where problem_id=0 and result>4);"|mysql -h $SERVER -P $PORT -u$USER -p$PASSWORD $DATABASE echo "delete from compileinfo where solution_id in (select solution_id from solution where problem_id=0 and result>4);"|mysql -h $SERVER -P $PORT -u$USER -p$PASSWORD $DATABASE echo "update solution set result=5 where result<4 and in_date4 "|mysql -h $SERVER -P $PORT -u$USER -p$PASSWORD $DATABASE # cleanup trash from 6 month ago echo "delete from loginlog where time/var/backups/db_${DATE}.sql.bz2 if tar cjf /var/backups/hustoj_${DATE}.tar.bz2 /home/judge/data /home/judge/src/web /home/judge/src/core /home/judge/etc /var/backups/db_${DATE}.sql.bz2; then rm /var/backups/hustoj_${OLD3}.tar.bz2 2> /dev/null rm /var/backups/db_${OLD}.sql.bz2 2> /dev/null # 如果经常遇到磁盘空间不足,可以尝试启用下面的内容 # find /var/backups/ -maxdepth 2 -ctime 5 -name "*.bz2" -exec rm -f {} \; fi echo "备份完成,请检查并用FileZilla通过sftp下载备份文件:/var/backups/hustoj_${DATE}.tar.bz2" echo "After the backup is complete, please check and download the backup file via sftp with FileZilla: /var/backups/hustoj_${DATE}.tar.bz2"