环境:redhat9.0
1、脚本如下:/root/cs.sh
#!/bin/bash
JAVA_HOME=/root/jdk1.5.0_01
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME CLASSPATH PATH
BEGINTIME=$(date +%M)
while true
do
if [[ -e testpage.log ]]
then
cp -f /dev/null /root/testpage.log
fi
sleep 10
ENDTIME=$(date +%M)
if ((expr $ENDTIME - $BEGINTIME) > 1 )
then
break
fi
/usr/local/bin/lynx -dump -connect_timeout=15000 -error_file=/root/testpage.log
\http://localhost:8080/index.jsp >/dev/null
cat /root/testpage.log | grep "STATUS=HTTP/1.1 200 OK" >/dev/null
if (( $? != 0 ))
then
TOMCAT=$(ps -ef --cols 200 |grep java.*tomcat |awk '{if($3==1)print $3}')
if [ "$TOMCAT" != 1 ]
then
echo -e "$(date +%Y-%m-%d-%H:%M:%S):STARTUP TOMCAT NOW!" >>
/root/tomcatlog.log
/root/tomcat-5.5.7/bin/startup.sh
continue
else
echo -e "$(date +%Y-%m-%d-%H:%M:%S):RESTART,SHUTDOWN TOMCAT NOW!" >>
/root/tomcatlog.log
/root/tomcat-5.5.7/bin/shutdown.sh
continue
fi
else
echo -e "$(date +%Y-%m-%d-%H:%M:%S):TOMCAT IS RUNNING!" >> /root/tomcatlog.log
break
fi
done
2、添加到crontab中
[root@localhost root]# crontab -e
输入:
SHELL=/bin/bash
PATH=/root/jdk1.5.0_01/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
HOME=/root
*/1 * * * * sh /root/cs.sh
表示一分钟执行下脚本
3、安装lynx
下载:lynx2.8.5.tar.gz 解压到root下
[root@localhost root]# tar -xzvf lynx2.8.5.tar.gz
[root@localhost root]# cd lynx2-8-5/ 进入lynx2-8-5目录
[root@localhost lynx2-8-5]#./configure 编译
[root@localhost lynx2-8-5]# make install 开始安装
默认安装到:/usr/local/bin/lynx
lynx参数:
-dump :显示网页内容到标准输出并推出
-connect_timeout :设置超时时间,单位(毫秒)
-error_file :将网页的返回状态信息写进文件
思路:先访问页面,如果的到200 OK状态直接跳出来,如果是500,404 等错误,在判断进程中是否有tomcat进程,如果有先停掉,然后在启tomat。
其中遇到了几个问题:
1、bash脚本在sh下运行异常,其中有
a、root下没有这个命令:
SHELL=/bin/bash
PATH=/root/jdk1.5.0_01/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
HOME=/root
*/1 * * * * root /root/cs.sh改成*/1 * * * * sh /root/cs.sh
b、找不到java_home:以下加入到脚本
JAVA_HOME=/root/jdk1.5.0_01
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME CLASSPATH PATH
以下是在另外一个linux版本下的
#!/bin/bash
BEGINTIME=$(date +%s)
while true
do
if [ -e testpage.log ]
then
cp -f /dev/null /root/testpage.log
fi
sleep 10
ENDTIME=$(date +%s)
OVERTIME=$(($ENDTIME-$BEGINTIME))
if (( $OVERTIME > 45 ))
then
echo -e "overtime exit:$OVERTIME second! " >> /root/tomcatlog.log
break
fi
/usr/local/bin/lynx -dump -connect_timeout=15000 -error_file=/root/testpage.log \http://192.168.100.126:8080/cdnweb/test.do >/dev/null
cat /root/testpage.log | grep "STATUS=HTTP/1.1 200 OK" >/dev/null
if [ "$?" != 0 ]
then
echo -e "$?:status=http/1.1 500 error! " >> /root/tomcatlog.log
TOMCAT=$(ps -ef --cols 200 |grep java.*tomcat |awk '{if($3==1)print $3}')
if [ "$TOMCAT" != 1 ]
then
echo -e "$(date +%Y-%m-%d-%H:%M:%S):STARTUP TOMCAT NOW! " >> /root/tomcatlog.log
/root/apache-tomcat-5.5.20/bin/startup.sh
continue
else
echo -e "$(date +%Y-%m-%d-%H:%M:%S):SHUTDOWN TOMCAT NOW! " >> /root/tomcatlog.log
/root/apache-tomcat-5.5.20/bin/shutdown.sh
continue
fi
else
echo -e "$?:status=http/1.1 200 ok! " >> /root/tomcatlog.log
echo -e "$(date +%Y-%m-%d-%H:%M:%S):TOMCAT IS RUNNING NOW! " >> /root/tomcatlog.log
break
fi
done
根据实际情况tomcat无法停掉在此做出修改(避免启动多个tomcat导致的一直启动问题)
#!/bin/bash
BEGINTIME=$(date +%s)
while true
do
if [ -e testpage.log ]
then
cp -f /dev/null /root/testpage.log
fi
sleep 40
ENDTIME=$(date +%s)
OVERTIME=$(($ENDTIME-$BEGINTIME))
if (( $OVERTIME > 180 ))
then
echo -e "overtime exit:$OVERTIME second! " >> /root/tomcatlog.log
break
fi
/usr/local/bin/lynx -dump -connect_timeout=50000 -error_file=/root/testpage.log \http://localhost/test.do >/dev/null
cat /root/testpage.log | grep "STATUS=HTTP/1.1 200 OK" >/dev/null
if [ "$?" != 0 ]
then
TOMCAT=$(ps -ef |grep -v grep |grep -c java.*tomcat)
if [ "$TOMCAT" = 0 ]
then
echo -e "status=http/1.1 404 error! " >> /root/tomcatlog.log
echo -e "$(date +%Y-%m-%d-%H:%M:%S):STARTUP TOMCAT NOW! " >> /root/tomcatlog.log
/root/apache-tomcat-5.5.17/bin/startup.sh
continue
else
echo -e "status=http/1.1 500 error! " >> /root/tomcatlog.log
PID=$(ps -ef |grep java.*tomcat |grep -v grep |cut -c9-15)
echo -e "$(date +%Y-%m-%d-%H:%M:%S):SHUTDOWN TOMCAT NOW! " >> /root/tomcatlog.log
kill -9 $PID
continue
fi
else
#echo -e "$?:status=http/1.1 200 ok! " >> /root/tomcatlog.log
echo -e "$(date +%Y-%m-%d-%H:%M:%S):TOMCAT IS RUNNING NOW! " >> /root/tomcatlog.log
break
fi
done
在实际测试过程中出现多个CS1.SH运行到sleep的时候一起无法响应,突然很多个CS1.SH同时被唤醒而导致出错做出如下调整,在sleep前加如下代码(目的保证一次一个CS1.SH脚本运行)
NUM=$(ps -ef |grep -v grep |grep -c cs1.sh)
if [ "$NUM" != 0 ]
then
echo -e "$(date +%Y-%m-%d-%H:%M:%S):There is a cs1.sh running! " >> /root/tomcatlog.log
break
fi
分享到:
相关推荐
通过编写shell脚本,我们可以执行一系列命令,包括启动、停止Tomcat服务,上传新的WAR文件,解压并替换旧的WAR文件,甚至监控和日志管理。这里,描述中提到的"内有说明文档"可能包含了一个详细的脚本说明,指导用户...
在Linux环境下配置Tomcat自启动是一项常见的系统管理任务,这对于保持服务器服务的连续性和稳定性至关重要。下面我们将详细探讨如何在Linux系统中设置Apache Tomcat自动启动,并了解与这个过程相关的概念和技术。 ...
tomcat自启动脚本
【标题】:“Tomcat Linux服务和自启动” 在Linux系统中,Apache Tomcat是一个广泛使用的开源Java Servlet容器,用于部署和运行Java web应用程序。Tomcat是基于Java的轻量级应用服务器,它遵循Java EE规范中的...
- 对于生产环境中的部署,建议使用Systemd服务单元文件的方法来配置开机自启动,因为它更符合现代Linux系统的管理规范,并且提供了更多的监控和服务控制选项。 - 如果在操作过程中遇到问题,可以参考官方文档或寻求...
启动脚本通常名为`startup.sh`(在Unix/Linux环境)或`startup.bat`(在Windows环境)。这个脚本位于Tomcat安装目录的`bin`子目录下。在Linux环境下,`startup.sh`是bash脚本,通过执行`./startup.sh`命令来启动...
这个名为`autocheck`的脚本文件可以放在 `/etc/init.d` 目录下,并通过服务管理工具(如`systemd`或`init`)设置开机启动。 注意,虽然自动重启脚本能提高服务的稳定性,但频繁的重启可能是系统问题的表现,应查找...
通过以上步骤,你已经成功地在Linux系统下配置了Tomcat服务的自启动。这对于维护服务器的稳定性、减少人工干预以及提高整体的服务质量都具有重要意义。每次系统重启时,Tomcat服务都会自动启动,从而确保应用程序的...
可以创建一个系统启动脚本,然后通过`systemctl`或`update-rc.d`命令将其添加为服务。 Tomcat的配置文件主要位于`conf`目录下,包括`server.xml`(主要配置)、`web.xml`(全局Web应用配置)和`context.xml`(特定...
自动监控tomcat脚本并且执行重启操作
总结起来,Linux下的Tomcat 6部署涉及下载、解压、环境配置、启动与停止、配置、安全管理、日志管理、性能优化、应用部署、监控以及故障排查等多个方面。理解这些知识点,将有助于你有效地管理和维护你的Java Web...
无论是使用`logrotate`还是自定义脚本,记得在Tomcat的启动脚本中配置正确,以便在启动Tomcat时,它能指向新的`catalina.out`文件。通常,这可以通过修改`CATALINA_OPTS`环境变量或者`setenv.sh`文件来实现。 总结...
本文介绍了如何在Linux环境下编写一个简单的Shell脚本来监控Tomcat服务的状态,并在必要时自动重启服务。通过这种方式可以有效提高系统的稳定性及响应速度。同时,还介绍了相关的命令和工具,以及常见的问题和解决...
1. **启动Tomcat**: 使用`$CATALINA_HOME/bin/startup.sh`脚本来启动Tomcat服务。 2. **停止Tomcat**: 使用`$CATALINA_HOME/bin/shutdown.sh`脚本关闭服务。 3. **监控状态**: 可以通过浏览器访问`...
tomcat宕机重启脚本,比较简单的一种设置
默认情况下,Tomcat的主要日志输出文件是`catalina.out`,它记录了服务器启动、运行和关闭过程中的所有标准输出和错误信息。然而,随着服务器运行时间的增长,`catalina.out`可能会变得非常大,导致日志查找和分析变...
Linux shell脚本定时清理tomcat日志文件 本文将详细介绍 Linux 环境中使用 shell 脚本来定时清理 Tomcat 日志文件的方法。该方法使用 cron 机制来实现每天自动切割日志文件,并删除 4 天前的日志文件。 知识点一:...
在Tomcat中,启动脚本主要位于`bin`目录下,分为两个主要脚本:`catalina.sh`(Linux或Unix系统)和`catalina.bat`(Windows系统)。这些脚本负责初始化Java环境,设置系统路径,加载Tomcat服务器的类和配置,并最终...
在这个场景中,shell脚本被用来组织和执行一系列步骤,包括登录远程服务器、传输文件、监控Tomcat服务的状态以及控制其启动和停止。 接下来是expect工具。Expect是一个用于自动化交互式进程的Tcl扩展,它可以模拟...