#!/bin/sh
# 监控tomcat进程,挂了执行重启操作
# author:QZJ
# 先获取tomcat的进程id
tomcat_id=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
echo "[i]$tomcat_id."
# tomcat 启动路径
start_tomcat=/data/java/tomcat/bin/startup.sh
# 缓存路径
#tomcat_cache=/data/java/tomcat/work
# 定义所要监控的页面地址
#通知联系人电话
phone_number=158****9199
#服务器名称
server_name=测试服务器
req_url=http://c3423.com
# 日志输出
get_response_code=/data/log
tomcat_check_log=/data/log/check.log
check()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ -n "$tomcat_id" ];then
echo "[info]tomcat进程ID为:$tomcat_id."
# 获取返回状态码
response_code=$(curl -s -o $get_response_code -m 10 --connect-timeout 10 $req_url -w %{http_code})
if [ $response_code -eq 200 ];then
echo "[info] 返回码为$response_code,tomcat启动成功,页面正常."
else
echo "[error] tomcat访问出错"
echo "[error] 开始重启tomcat"
curl -d "app_id=bce4c05d75544bd3b6272714883a8fd7&phone_numbers=$phone_number&template_id=SMS_135040540&template_param={'serverName':'$server_name'}&sign_name=阿里云短信测试专用" Http://server/sms/aliMsg
# 杀掉原tomcat进程
kill -9 $tomcat_id
# 清理tomcat缓存
#rm -rf $tomcat_cache
$start_tomcat
echo "[info]$start_tomcat, 请稍候..."
fi
else
echo "[error] 进程不存在, tomcat自动重启..."
echo "[info]$start_tomcat, 请稍候..."
curl -d "app_id=bce4c05d75544bd3b6272714883a8fd7&phone_numbers=$phone_number&template_id=SMS_135040540&template_param={'serverName':'$server_name'}&sign_name=阿里云短信测试专用" Http://server/sms/aliMsg
$start_tomcat
fi
echo "-----------------"
}
check>>$tomcat_check_log