您的位置:首页 > 运维架构 > Tomcat

Linux服务器A开机执行脚本远程监测服务器B下的tomcat

2018-09-10 11:53 246 查看

此文章是在默认已经安装好tomcat的情况下进行的,若没安装,请参考这篇文章
https://blog.csdn.net/zt949210232/article/details/82460663

大体思路:

  1. 创建简单shell脚本并能执行
  2. 定时去执行shell
  3. 服务器A开机自动启动
  4. 编辑脚本能够监测服务器B下的tomcat,若不在运行状态则启动服务器A的的tomcat,若在运行状态则监测本服务器的tomcat是否开启,若开启则关闭

具体操作步骤:

1. 创建简单shell脚本并能执行

1)touch checktomcat.sh
2)vim checktomcat.sh
键入i
插入#!/bin/sh
echo hello world;
键入:
esc
:
wq
3)chmod 700 checktomcat.sh
4) 执行./ checktomcat.sh

2. 定时任务执行脚本
首先要安装crontabs
关于crontabs的连接以及说明
https://www.geek-share.com/detail/2726828579.html

1) yum install vixie-cron //下载安装
2) yum install crontabs //下载安装
3) service crond start //启动服务
4) /1 * * * /root/checkTomcatYesOrNo/checktomcat.sh lumus nedp //每隔一分钟启动一次checktomcat.sh脚本,输出日志在/var/mail/root中可以查看
5) 若不用可以关闭 service crond stop //关闭服务
6) chkconfig –level 35 crond on //开机自动启动
3. 更改本机上的tomcat
修改Tomcat/bin/startup.sh ,在其下面添加

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/root/tomcat/apache-tomcat-7.0.52
/root/tomcat/apache-tomcat-7.0.52/bin/catalina.sh start


4. 服务器A开机监测服务器B上的tomcat
将checktomcat.sh中的脚本替换成,日志在TomcatMonitor.log和TomcatMonitor.Info可以查看
脚本参考:https://blog.csdn.net/zzq900503/article/details/50723191

#!/bin/sh

# func:自动监控tomcat脚本并且执行重启操作
# date:2018-09-07
# DEFINE

# 获取tomcat进程ID(其中[grep -w 'apache-tomcat-7.0.52']代码中的apache-tomcat-7.0.52需要替换为你的tomcat文件夹名)
TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.52'|grep -v 'grep'|awk '{print $2}')

# tomcat启动程序(这里注意tomcat实际安装的路径)
tomcat_home=/root/tomcat/apache-tomcat-7.0.52
StartTomcat=$tomcat_home/bin/startup.sh
StopTomcat=$tomcat_home/bin/shutdown.sh
TomcatCache=$tomcat_home/work

#定义要监控的页面地址
#WebUrl=http://192.168.8.50:80
WebUrl=http://192.168.8.50.81
#日志输出
GetPageInfo=/tmp/TomcatMonitor.Info
TomcatMonitorLog=/tmp/TomcatMonitor.log

Monitor()
{
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常"
if [ $TomcatID ];then #这里判断Tomcat进程是否存在
echo "主服务已启动,已关闭备用服务"
$StopTomcat
fi
else
if [ $TomcatID ];then #这里判断Tomcat进程是否存在
echo "备用tomcat已经启动"
else
echo "[error]tomcat页面出错,请注意...状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[error]页面访问出错,开始启动备用tomcat"
$StartTomcat
fi
fi

}
Monitor>>$TomcatMonitorLog

5. 一直启动不了tomcat,后来在/var/mail/root中发现打印出来的日志,显示权限不够。

6. 找到startup.sh中的bin目录下,输入命令行 chmod 777 ./shartup.sh即可

7.在windows系统的浏览器中输入ip,端口即可访问

8.当检查到服务器B中的网址恢复正常时,应该将服务器A中的tomcat关掉,在关掉的过程中遇到了以下问题,权限不够,步骤同上,找到bin目录下,命令输入chmod 777 ./shutdown.sh即可,再次输入浏览器的ip和端口,就访问不到了

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: