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 "---------------"