Linux实用脚本4:批量获取IBM MQ所有队列消息深度

本文介绍了如何通过Linux脚本批量获取IBM MQ服务器上所有队列管理器(QM)的消息深度,避免手动检查的低效。文章详细讲解了脚本的四个步骤:获取QM列表、获取所有队列、获取队列深度以及结果输出。通过使用dspmq等命令,结合awk和cut进行数据处理,实现了自动化检查,同时将结果保存以便后续查阅。
摘要由CSDN通过智能技术生成

需求

         IBM MQ服务器,在做异地灾备切换时,为保证消息不丢失,需要在切换前检查QM中是否有消息。由于单台服务器上QM比较多,里面的QUEUE更多,若需要肉眼登录查看,甚是低效。因而有此需求。

解决方案

#!/bin/bash
 
#param1: mq_name
#param2: qlocal
GetQueueDepth()
{
    if [ $# != 2 ]
    then
        echo "Usage : FUNCTION QMNAME QLOCAL"
        return 1
    fi
    QMNAME="$1"
    QLOCAL="$2"
    AAA=`runmqsc $QMNAME <<!
       display qlocal($QLOCAL)
       end
!`
    echo ${AAA#*CURDEPTH} | awk '{print $1}' | cut -d '(' -f2|cut -d ')' -f1
}
 
GetAllQM()
{
    AAA=`dspmq`
    for item in $AAA
    do 
        PREFIX=${item:0:6}
        if [ "$PREFIX" = "QMNAME" ]
        then
            echo ${item#*QMNAME} | cut -d '(' -f2|cut -d ')' -f1
        fi
    done
}
 
GetAllQueue()
{
    if [ $# != 1 ]
    then
        echo "Usage : FUNCTION QMNAME"
        return 1
    fi
    QMNAME="$1"
    AAA=`runmqsc $QMNAME <<!
       display qlocal(*)
       end
!`
    for item in $AAA
    do
        PREFIX=${item:0:5}
        if [ "$PREFIX" = "QUEUE" ]
        then
             QUEUENAME=`echo ${item#*QUEUE} | cut -d '(' -f2|cut -d ')' -f1`
             QUEUE_PREFIX=${QUEUENAME:0:6}
             if [ "$QUEUE_PREFIX" != "SYS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值