一台主机上部有6个tomcat,如何在启动时能够让6个tomcat顺序的启动,就是当一个启动完后,再启动下一个。
我能想到的是通过日志判断是否有“Server startup in”的出现,如果有,再启动下一个。
请问这个脚本应该怎么写?
我能想到的是通过日志判断是否有“Server startup in”的出现,如果有,再启动下一个。
请问这个脚本应该怎么写?
解决方案 »
- bash: /root/.bashrc:行32: 语法错误: 未预期的文件结尾
- 新手求助:在linux服务器下的tomcat配置了https,用ie访问网站报错找不到网站
- 为什么我在ubuntu下安装的metasploit 显示没有python2.7类似的东西
- 新手刚刚学习linux第三天。一些问题
- CentOS7 桥接 除了宿主机都可以ping通
- Linux双网卡问题
- Linux自动化测试工具讨论
- faster-rcnn出错:confidence = np.array([float could not convert stringto loat:
- 纯小白求教大佬们关于将源文件编译成lib文件的问题。
- mac os升级成15后解压缩zip格式文件报错22:无效的参数,为什么?怎么解决?
- linux下共享内存怎么在不同的进程之间传送地址
- archlinux,vbox网络配置问题
#auth cy
log1 = /tomcatlog1
log2 = /tomcatlog2
.
.
.
log6 = /tomcatlog6 # 定义日志路径
tomcat1 start # 这里写启动tomcat命令
cat $log1 |grep "Server startup in"
if [$? -eq 0]
then
echo "tomcat1 started"
tomcat2 start # 这里写启动tomcat命令
cat $log2 |grep "Server startup in"
if [$? -eq 0]
then
echo "tomcat2 started"
.
.
.
else
echo "tomcat2 starting"
fi
else
echo "tomcat1 starting"
fi
看了一下大致有一个思路,还有更优的办法,懒得写了 。
当启动tomcat命令执行后,脚本马上就执行检查log了,当然不会取到Server startup in。
在检查log之前应该加入等待时间,等tomcat启动完成。
DIR=
cd $DIR
for i in t1 t2 t3 t4 t5 t6;do
#清空日志
echo > $i/logs/catalina.out
#启动tomcat
$i/bin/startup.sh
testnum=0
while [ $testnum != 3 ];do sleep 5;cat $i/logs/catalina.out|grep "Server startup in" > /dev/null
if [ $? == 0 ];then break
else
testnum=$((testnum+1));fi
done #while done
if [ $testnum == 3 ];then echo "$i 未成功启动" ;exit ;fi
done #for done
应该这样可以吧。没试,直接再web上写的。