#! /bin/bash
export LANG=en_US.UTF-8

isOnline=
pendingNumber=
DataResultStr=""
message=             
hostAndPortStr=
brokerName=
username=
password=
destinationNames=
result=

function gotErr(){
    if [ "1" -eq 3 ];then        echo "接口调用失败{message}"
    fi
    exit 1
}

#调用jar包是否成功
function isSuccess(){
    activemqMonitor="(cd `dirname 0`;pwd)/mq_monitor.jar"
    monitorDate=(java -jar activemqMonitorhostAndPortStr brokerNameusername passworddestinationNames)
    result=`echo monitorDate|awk  -F '["{}:,]+' '{for(i=0;i++<=NF;) printfi" ";print ""}'`
    code=`echo result|awk '{print2}'`
    if [ "code" != 0 ];then
        message=result
        gotErr 3
    fi
}

#判断是否在线
function getIsOnline(){
    online=`echo result|awk '{print8}'`
    if [ "online" == "true" ];then
        CURNUM=0
    else
        CURNUM=2
    fi
}

#消息积压数量
function getPendingNumber(){
    CURNUM=`echoresult|awk '{print 10}'`
    if [ -z "CURNUM" ];then
        CURNUM=0
    fi
}


#依据传入的参数值来判断我们要监控的服务是什么
#然后通过各个函数获取到具体的值
#值之间的
function analysisStat(){
    #判断是否在线
    getIsOnline
    parseFileds "isOnline"

    #消息积压数量
    getPendingNumber
    parseFileds "pendingNumber"
}


#拼接字符串
function parseFileds(){
    if [[ "DataResultStr" != "" ]];then
        DataResultStr=DataResultStr","
    fi
    DataResultStr="DataResultStr'1':'CURNUM'"
}

function analysisResult(){
    result="{'cpname':'mqConsumerQueen','FLAGEPID':'0',{DataResultStr}}"
    result=`echo {result//\'/\"}`
    echoresult
}

#输出错误信息并且退出程序
function showHelp(){
    if [ "1" != "" ];then
        echo "请输入1"
    fi
    echo "check_mq.sh 可以监听mq消费者队列信息 参数如下"
    echo "check_mq.sh [-f <host>] [-b <mq_name>] [-u <username>] [-p <password>] [-d <quene_name>]"
    echo "-f 表示mq单节点主机和端口字符串/mq集群主机和端口字符串"
    echo "-b 表示mq节点的名字,需要查看activemq.xml文件查看"
    echo "-u 表示连接mq节点时的用户名"
    echo "-p 表示连接mq节点时的密码"
    echo "-d 队列名称"
    exit 1
}

while getopts "f:b:u:p:d:h" arg
do
    case arg in
        f)
            hostAndPortStr=OPTARG
            ;;
        b)
            brokerName=OPTARG
            ;;
        u)
            username=OPTARG
            ;;
        p)
            password=OPTARG
            ;;
        d)
            destinationNames=OPTARG
            ;;
        h)
            showHelp
            ;;
        ?) 
            showHelp
            ;;
    esac
done

#插件正题部分 
#确定存活的
#启动
#分析

isSuccess
analysisStat
analysisResult

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code