自动恢复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
