开始做运维的时候经常会遇到重启tomcat、重新部署项目包等情况,为减少其他因素带来影响,就需要每次启动都要清除一下tomcat运行的缓存文件,这样问题就出来了,这个重复劳动没技术含量,也怕删错文件,就想这个tomcat为什么不能添加到服务呢?那样就能使用service *** start/stop命令,可是找了好久没找到,不知道是因为太简单,还是我的原因,时间久了,自己就开始研究shell了,上周开始学习shell也有半个月了,有点成果share一下。
目的:
1.重启tomcat
2.清空缓存文件
但是要注意的是环境变量的设置,若不同需要自己更改。
#!/bin/sh
tomcat_dir=/usr/local/apache-tomcat-7.0.47
#尝试关闭tomcat
Monitor(){
echo " [$(date +'%F %H:%M:%S')]"
#第一次检查,是否存在,然后尝试使用shutdown关闭tomcat
tomcatPid_1=$(ps -ef|grep tomcat |grep jdk | awk '{print $2}')
echo "Tomcat的pid为:$tomcatPid_1"
if [ "$tomcatPid_1" ]
then
echo "=*=Tomcat运行正常,现在关闭,并清空缓存"
sh $tomcat_dir/bin/shutdown.sh
#第二次检查,shutdown结果,然后尝试使用kill关闭tomcat
tomcatPid_2=$(ps -ef|grep tomcat |grep jdk | awk '{print $2}')
if [ "$tomcatPid_2" ]
then
kill -9 $tomcatPid_2
#第三次检查,kill结果
tomcatPid_3=$(ps -ef|grep tomcat |grep jdk | awk '{print $2}')
if [ "$tomcatPid_3" ]
then
echo " Tomcat进程kill失败,这个基本不可能"
else
echo " Tomcat关闭成功For Kill"
fi
else
echo " shutdown.sh停止Tomcat成功"
fi
else
echo " Tomcat之前并没有启动"
fi
}
Monitor
#尝试清缓存/work/Catalina
if [ ! -d "$tomcat_dir/work/Catalina" ];
then
echo "/work/Catalian不存在"
else
rm -rf "$tomcat_dir/work/Catalina"
echo "/work/Catalina存在,现已删除"
fi
#尝试清日志
if ! [ -f "$tomcat_dir/logs/catalina.out" ]
then
echo "/logs/catalina.out不存在"
else
cd $tomcat_dir/logs
rm -rf *
echo "tomcat日志文件存在,现已删除"
fi
#尝试清缓存/conf/Catalina
if [ ! -d "$tomcat_dir/conf/Catalina" ]
then
echo "/conf/Catalina不存在"
else
rm -rf "$tomcat_dir/conf/Catalina"
echo "/conf/Catalina存在,现已删除"
fi
我自己测试没有问题,脚本还在不断优化中。。。
推荐Linux学习千人群:148976441
新手学习,求更正,求建议,求同步
一条运维小白的自学之路