shell脚本命令解释(待扩展):
#!/bin/sh
//制定shell 脚本运行环境;
ps -ef | grep $TomcatName | grep -v 'grep' | awk '{print $2}'
首先用ps -ef | grep tomcat 获得了tomcat进程信息,这样出来的结果中会包含grep本身,
因此通过 | grep -v grep 来排除grep本身,然后通过 awk '{print $2}'来打印出要找的进程id号;
curl -I -m 10 -o $GetPageInfo -s -w %{http_code} $WebUrl
获取请求返回值。
tomcat启动监测和自启动脚本
#!/bin/sh
#tomcat 自启动脚本
#author:cj
#date:2019-07-05
# tomcat包名称
TomcatName=tomcat
#获取tomcat进程id
TomcatID=$(ps -ef | grep $TomcatName | grep -v 'grep' | awk '{print $2}')
#tomcat启动程序(tomcat的启动路径,)
StartTomcat=/home/tomcat/bin/startup.sh
TomcatCache=/opt/tomcat/work
#定义要监控的页面地址(tomcat启动可访问页面)
WebUrl=http://localhost:8080/tomcat
#日志输出
GetPageInfo=/opt/tomcat/logs/TomcatMonitor.Info
TomcatMonitorLog=/opt/tomcat/logs/TomcatMonitor.log
Monitor()
{
echo "[info]开始监控tomcat:$TomcatName...[$(date +'%Y-%m-%d %H:%M:%S')]"
if [ $TomcatID ];then
echo "[info]当前tomcat进城id为:$TomcatID,继续监测页面..."
# 获取请求响应码
TomcatServiceCode=$(curl -I -m 10 -o $GetPageInfo -s -w %{http_code} $WebUrl)
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]页面返回码为:$TomcatServiceCode,tomcat启动成功,页面测试正常"
else
echo "[error]tomcat页面出错,请注意...状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[error]页面访问出错,开始重启tomcat"
# 杀掉原tomcat进程
kill -9 $TomcatID
sleep 3
# 清理tomcat缓存
rm -rf $TomcatCache
$StartTomcat
echo "[info]tomcat重启成功"
fi
else
echo "[error]tomcat进程不存在,开始自动重启..."
echo "[info]$StartTomcat,请稍候..."
rm -rf $TomcatCache
$StartTomcat
echo "[info]tomcat 启动成功"
fi
echo "................."
}
Monitor>>$TomcatMonitorLog