#通道状态
Statu(){
case $1 in
RUNNING)
#通道正在正常运行
TD_Statu=0
;;
INACTIVE)
#通道处于非活动状态
TD_Statu=1
;;
STARTING)
#通道正在启动
TD_Statu=2
;;
BINDING)
#通道正在绑定到远程队列管理器
TD_Statu=3
;;
STOPPING)
#通道正在停止
TD_Statu=4
;;
RETRYING)
#通道正在尝试重新连接
TD_Statu=5
;;
STOPPED)
#通道已停止
TD_Statu=6
;;
REQUESTING)
#通道正在请求连接
TD_Statu=7
;;
PAUSED)
#通道已暂停
TD_Statu=8
;;
INITIALIZING)
#通道正在初始化
TD_Statu=13
;;
*)
#未抓到状态
TD_Statu=99
;;
esac
}
ZBID=brcb.AMQ_Channel_RCVR_Number_of_Channel_Instances_Stopped
MQ_List=$(dspmq | awk -F'(' '{print $2}'| awk -F')' '{print $1}')
for i in $(echo $MQ_List)
do
skip_first=true
output=$(su - mqm -c 'echo "DIS CHSTATUS(*)" |runmqsc $i | tail -n +6 |head -n -3')
Flage=0
IFS_OLD=$IFS
IFS='\:'
for line in $output
do
if [ "$skip_first" = true ]; then
skip_first=false
else
TD_Name=$(echo $line|grep CHANNEL|awk -F'(' '{print $2}'| awk -F')' '{print $1}')
TD_Status=$(echo $line|grep STATUS|grep -o 'STATUS([^)]*)' | cut -d "(" -f2 | cut -d ")" -f1)
Statu $TD_Status
if [ ${TD_Statu} -eq 6 ];then
let "Flage+=1"
fi
fi
done
echo "${Flage}|$i"
IFS=$IFS_OLD
done