一台主机上部有6个tomcat,如何在启动时能够让6个tomcat顺序的启动,就是当一个启动完后,再启动下一个。
我能想到的是通过日志判断是否有“Server startup in”的出现,如果有,再启动下一个。
请问这个脚本应该怎么写?

解决方案 »

  1.   

    #!/bin/bash
    #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
    看了一下大致有一个思路,还有更优的办法,懒得写了 。
      

  2.   

    当然照搬是无法使用的,提供的只是一个思路而已。
    当启动tomcat命令执行后,脚本马上就执行检查log了,当然不会取到Server startup in。
    在检查log之前应该加入等待时间,等tomcat启动完成。
      

  3.   

    把tomcat全放到同一个目录下,如:/www/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上写的。
      

  4.   

    嗯,5楼的思路比1楼的要好,加入了循环等待,直到tomcat启动