shell监控IBM MQ队列深度,10s扫描三次,有两次以上深度值超过5时,则输出队列名称和深度值。

shell监控IBM MQ队列深度,10s扫描三次,有两次以上深度值超过5时,则输出队列名称和深度值。,第1张

shell监控IBM MQ队列深度,10s扫描三次,有两次以上深度值超过5时,则输出队列名称和深度值。
#!/bin/bash 
#GetMqCurdepth()
#{
 dismq=`dspmq`
 status=`echo $dismq | cut -d ' ' -f2 | cut -d '(' -f2 | cut -d ')' -f1`
 mq_name=`echo $dismq | cut -d '(' -f2 | cut -d ')' -f1`
 if [ $status = 'Running' ]
  then
   echo -e "33[32m MQ队列管理器$mq_name 运行状态正常 33[0m "
  else
   echo -e "33[31m ERROR:MQ队列管理器$mq_name 运行状态异常 33[0m"
   exit
 fi

 disql=`echo "dis ql(*)" | runmqsc $mq_name |grep "YTH" | awk -F"(" '{print }' | awk -F")" '{print }'`
 for un in `seq 0 2`
  do
   for derth in $disql
    do
     lname=$derth
     disderth=`echo "dis ql($derth) CURDEPTH" | runmqsc $mq_name`
     sderth=`echo "dis ql($disderth) CURDEPTH" | runmqsc $mq_name | grep "CURDEPTH" | grep -v "dis" | cut -d '(' -f2 |cut -d ')' -f1`
     abc=`echo $sderth | cut -d ']' -f6 | cut -d 'C' -f1 | awk '{gsub(/^s+|s+$/, "");print}'`
     if [ $abc -gt 5 ]
      then
       eval $lname[$un]=$abc
     fi
     under=`expr $un + 1`
     echo "$lname 第$under次深度扫描:$abc"
   done
  sleep 5
 done
 for th in $disql
  do
   eval 'length="${'"#$th[*]"'}"'
   if [ $length -ge 2 ] 
    then
     eval 'echo -e "tERROR:队列名称:$th 该队列三次深度值监控中有两次及以上深度值过大,分别为:33[31m${'"$th[*]"'} 33[0m"'
      fi
 done 
#}
#getdepth=$(GetMqCurdepth)
#echo -e "$getdepth n"

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5704428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存