centos简单监控,服务down机后自动重启

1.crontab监控

1分钟扫描一次

*/1 * * * * source /etc/profile && sh /data/shell/monitor/process.sh >> /var/log/process.log

2.process.sh

原理:查看服务进程数,查不到进程时,启动服务

#!/bin/sh
ctime=`date +%Y-%m-%d\ %H:%S:%S`
server_name=hechaojie
server_dir=/data/$server_name/tomcat
echo $ctime' 监听服务运行状态,'$server_name
function checkserver(){
    count=`ps -ef |grep $2 |grep -v "grep" |wc -l`
    echo '服务数:'$count
    if [ 0 == $count ];then
        echo $1'已停止,正在启动...'
    #source /data/shell/killprocess.sh $1
        echo '启动完毕,3s启动server'
        sleep 3
        source /data/$1/deploy/git_deploy.sh
        count=`ps -ef |grep $2 |grep -v "grep" |wc -l`
    echo '启动完成,服务数:'$count
    fi
    return $count
}

3.git_deploy.sh

更新代码并执行发布脚本

#!/bin/sh
cd /data/svntmp/hechaojie
git pull
ant
cp target/*.war /data/hechaojie
source /etc/profile && sh /data/hechaojie/deploy/deploy.sh

4.deploy.sh

#!/bin/sh
NAME=hechaojie
TIME=`date +%Y%m%d%H%M%S`
PRO_HOME=/data/${NAME}
cd $PRO_HOME
echo '调用停止tomcat脚本'
source deploy/stop.sh
echo '调用结束'
rm -rf run/*
unzip -o  *.war -d run/

cp ./run/WEB-INF/classes/env/www.properties ./run/WEB-INF/classes/env/local.properties
cp ./run/WEB-INF/classes/config-www.properties ./run/WEB-INF/classes/config.properties
cp /data/hechaojie/replace/_include.html /data/hechaojie/run/WEB-INF/views/common/_include.html
echo '调用启动脚本...'
source deploy/start.sh
echo '调用结束'

cp ${NAME}*.war ./bak/${NAME}${TIME}.war

rm -rf /data/${NAME}/run/ueditor
ln -s /data/${NAME}/ueditor /data/${NAME}/run

5.stop.sh

#!/bin/sh
source /data/shell/killprocess.sh hechaojie

6.start.sh

#/bin/sh
echo '正在准备启动tomcat...'
set -m
WEB_HOME=/data/hechaojie
sh ${WEB_HOME}/tomcat/bin/catalina.sh start
echo '启动tomcat完毕!'

7.killprocess.sh

#!/bin/sh

NAME=$1
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "---------------"

猜你喜欢

转载自blog.csdn.net/hechaojie_com/article/details/82056539