导航菜单
首页 » 石器私服教程 » 正文

一个备份石器时代saac人物数据的sh脚本

石器的各种老东西的时候,无意间发现很早以前自动备份数据的脚本,想想06,07年那会儿还不会代码的时候,服务端总会出现崩溃回档,要做人物数据备份得手动,也不是无时无刻的备份,所以就写了个脚本用来进行人物数据备份,再使用LINUX定时器定时执行。下面发下脚本代码:

#!/bin/bash
#复制人物资料到SAAC里面
#/data/store/char里面保存的是异常断线时候在线人物的数据
#这里会跟SAAC里面的数据进行比较只复制最新的数据

yourdate=`date +%Y-%m-%d-%H:%M:%S`

storepath=./data/store
storecharpath=${storepath}/char
saaccharpath=../saac/char
startinterval=5
startparfile=startpar.txt
startpar=`cat ${startparfile}`
cmpminutes=`date +%M`
cmphour=`date +%H`
logfile=start.log
shellcmp=${PWD}/gmsv_start.sh
shellcmpfile=shellcmp.t

echo "${yourdate} 神奇社区 GMSV异常关闭数据保存脚本 1.1" >> ${logfile}

yourdate=`date +%Y-%m-%d-%H%M%S`
echo "Backup to store.${yourdate}.tar.gz" >> ${logfile}
tar zcf store.${yourdate}.tar.gz ${storepath}

/bin/cp -rfu ${storecharpath}/* ${saaccharpath}
echo "在线人物数据还原完毕。"  >> ${logfile}

corefilename=`find ${storecharpath}/*`
rmcount=0
for n in $corefilename; do
	if [ -f "$n" ] ; then
		rmcount=`expr ${rmcount} + 1`
		rm -f ${n}
	fi
done
echo "共删除文件:${rmcount}" >> ${logfile}

corefilename=`ls core.*`
for n in $corefilename; do
	if [ -f "$n" ] ; then
		yourdate=`date +%Y-%m-%d-%H%M%S`
		echo "Backup to dump.${n}.${yourdate}.tar.gz" >> ${logfile}
		tar zcf dump.${n}.${yourdate}.tar.gz $n
		rm -rf ${n}
	else
		echo "No core.*" >> ${logfile}
	fi
done


评论(0)

二维码