linux bash脚本监控启动停止weblogic服务

有时,linux系统需要做HA或者类似的功能,需要配置weblogic脚本来启动,停止,查看状态,可以如下方式写
命令形式:Weblogic server start|stop|restart|status


### BEGIN WLS Configration
DOMAIN_NAME=base_domain
SERVER_NAME=AServer 
ADMIN_URL="t3://ip:7001"
DOMAIN_PATH=/Oracle/Middleware/user_projects/domains/${DOMAIN_NAME}

#使用这个命令得到weblogic对应服务进程的进程号
WLS_PID=`ps -ef|grep java|grep =${SERVER_NAME}|awk '{print $2}'`
#USER_NAME=`logname`
USER_NAME=`whoami`
## WLS_MEMORY
USER_MEM_ARGS="-Xms2048m -Xmx3096m -XX:PermSize=256m -XX:MaxPermSize=512m"
export USER_MEM_ARGS
### END WLS Configration


#########  Weblogic server start|stop|restart|status
#用于等待进程启停
wait_for_pid () 
{
    try=0
        case "$1" in
            'created')
                while test $try -lt 7 ; do
                printf .
                try=`expr $try + 1`
                sleep 1
                done                        
                WLS_PID=`ps -ef|grep java|grep ${SERVER_NAME}|awk '{print $2}'`                       
                if [ "$WLS_PID" != "" ] ; then
                    try=''                                                  
                fi
            ;;
            'removed')
                while test $try -lt 35 ; do    
                WLS_PID=`ps -ef|grep java|grep ${SERVER_NAME}|awk '{print $2}'`
                if [ "${WLS_PID}" = "" ] ; then
                    try=''
                break
                fi
                printf .
                try=`expr $try + 1`
                sleep 1
                done
            ;;
        esac
}
#判断操作用户名,不能是root需要使用weblogic用户
if [ "$USER_NAME" = "root" ] ; then
    echo "USER_NAME is $USER_NAME! Plz use weblogic!"
    exit 1
fi
#domain不能为空
if [ "$DOMAIN_NAME" = "" ] ; then
    echo "DOMAIN_NAME is not set! Plz set DOMAIN_NAME!"
    exit 1
fi
#service不能为空
if [ "$SERVER_NAME" = "" ] ; then
    echo "SERVER_NAME is not set! Plz set SERVER_NAME!"
    exit 1
fi
#url不能为空
if [ "$ADMIN_URL" = "" ] ; then
    echo "ADMIN_URL is not set! Using default ADMIN_URL!"
fi
#如果是查看状态命令              
if [ "$1" = "status" ]
    then                
    if [ "${WLS_PID}" = "" ] ; then
      echo "No pid - $SERVER_NAME is not running !"
        exit 1
  else 
    echo "$SERVER_NAME is running !"
    exit 0
  fi
fi

printf "Terminating $SERVER_NAME "
    if [ "${WLS_PID}" = "" ] ; then
        echo "No pid - $SERVER_NAME is not running !"
    else                    
        kill -9 $WLS_PID
    wait_for_pid removed 
    if [ -n "$try" ] ; then
    echo " failed "
    exit 1                  
    fi
        echo " done ! "
        exit 0
  fi
#如果是停止命令,这里不使用这个                
if [ "$1" = "stop" ]
then                
echo  ""
else
#启动命令
printf "Starting $SERVER_NAME "
    if echo $SERVER_NAME|grep -q dmin ; then               
        nohup sh $DOMAIN_PATH/bin/startWebLogic.sh &
    else                
        nohup sh $DOMAIN_PATH/bin/startManagedWebLogic.sh $SERVER_NAME $ADMIN_URL &
    fi                
    wait_for_pid created 
    if [ -n "$try" ] ; then
        echo " failed "
        exit 1
    else
       echo " done ! "
       exit 0
    fi      
fi  
echo "To check the log, you may excute:"
echo "tail -100f "


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值