通过日志打印时间来判断服务是否夯死需要重启服务

方法1:

#!/bin/sh
system=$(date +%s)
#curTime=`date +"%Y-%m-%d %H:%M:%S"`
echo 系统时间:$system
service=$(stat -c %Y  /home/catalina.log)
#logTime=`tail -1 /home/catalina.log| awk -F' ' '{ print $1 " " substr($2,0,8)}'`
echo 服务日志时间:$service
#echo -e "Log time: \t$logTime\nCurrent time: \t$curTime"
dif=$(($system-$service))
#计算日志时间和当前时间差值,差值不超过60s
#logSec=`date -d "$logTime" +%s`
#curSec=`date +%s`
#gapSec=`expr "$curSec" - "$logSec"`
echo 时间差异:$dif
if [ $dif-gt 60 ]
then
   echo 服务异常,重启服务!
   echo ps -ef|grep PRONAME|grep -v 'grep'|awk '{print$2}'
   #ps -ef|grep Other|grep -v 'grep'|awk '{print$2}'|xargs kill -9
   #/home/bin/start.sh
else
   echo 时间差异在1分钟区间内,Normal service!
fi

方法2:

#!/bin/sh
#system=$(date +%s)
curTime=`date +"%Y-%m-%d %H:%M:%S"`
#echo 系统时间:$system
#service=$(stat -c %Y  /home/catalina.log)
logTime=`tail -1 /home/catalina.log| awk -F' ' '{ print $1 " " substr($2,0,8)}'`
#echo 服务日志时间:$service
echo -e "Log time: \t$logTime\nCurrent time: \t$curTime"
#dif=$(($system-$service))
#计算日志时间和当前时间差值,差值不超过60s
logSec=`date -d "$logTime" +%s`
curSec=`date +%s`
gapSec=`expr "$curSec" - "$logSec"`
echo 时间差异:$gapSec
if [ $gapSec -gt 60 ]
then
   echo 服务异常,重启服务!
   echo ps -ef|grep PRONAME|grep -v 'grep'|awk '{print$2}'
   #ps -ef|grep Other|grep -v 'grep'|awk '{print$2}'|xargs kill -9
   #/home/bin/start.sh
else
   echo 时间差异在1分钟区间内,Normal service!
fi

你可能感兴趣的:(运维人生,shell,linux)