自动恢复Tomcat
定时任务中定时执行即可,重复性工作尽量交给机器去做,尽量做到代码管业务
#/bin/bash
#2019-1-23
. /etc/init.d/functions
. /etc/profile
. /etc/bashrc
. /root/.bashrc
. /root/.bash_profile
#设置访问的url
ip=127.0.0.1
pid=/usr/local/tomcat/bin
bak=/data/backup
log=catalina.out
lujing=/usr/local/tomcat/logs/
size=`du -s $lujing$log|awk '{print $1}'`
#日志多大进行分割,kb为单位
rz=200000
#日志保留天数
rzbak=15
[ ! -f /tmp/jktomcat.txt ] && touch /tmp/jktomcat.txt
pd(){
if [ $? -eq 0 ]
then
action "-------- $(date +%F--%R:%S)------ " /bin/true
else
action "-------- $(date +%F--%R:%S)------ " /bin/false
fi
}
restart(){
killall -9 java &>/dev/null
/bin/bash $pid/startup.sh &>/dev/null
pd
exit 1
}
[ ! -d $bak ] && mkdir -p $bak
if [ $size -ge $rz ]
then
cd $lujing && tar zcf $bak/$(date +%F)-$RANDOM-$log.tar.gz $log && >$lujing/$log
echo "log-$size-$(date +%F--%R:%S)" >>/tmp/jktomcat.txt
fi
find $bak -name "*.tar.gz" -mtime +$rzbak|xargs rm -rf
find $lujing -name "*log*" -mtime +$rzbak|xargs rm -rf
pid1=`ps -ef |grep java |grep -v grep |wc -l`
if [ $pid1 -eq 0 ]
then
restart
fi
zhi=`curl -s -I $ip --speed-time 15|awk 'NR==1{print $2}'`
case "$zhi" in
200)
exit 0
;;
302)
exit 0
;;
*)
restart
;;
esac