ibm-mq – 如何检查IBM MQ for Linux中是否存在队列名称?

如果[[$(dspmq | grep'(正在运行)’| grep“$QMgr”| wc -l | tr -d“”)!= 1]]

上面的代码是检查队列管理器是否正在运行.

是否有任何命令来检查队列管理器中是否存在给定的队列名称

解决方法

除了Rob和T.Rob所说的之外,还添加了另一个建议.

MQ v7.1及更高版本附带dmpmqcfg命令,您可以使用它来检查特定队列.

以下示例与您的示例一致,该示例检查队列管理器是否正在运行:

要使用dmpmqcfg检查是否存在任何类型的队列名称,您可以执行以下操作:

if dmpmqcfg -m ${QMgr} -t queue -x object -o 1line -n ${QName}|egrep '^DEFINE '; then
  echo "Queue ${QName} exists on Queue Manager ${QMgr}
fi

使用方法Rob Parker提供*来检查是否存在任何类型的队列名称
*注意我使用了disPLAY Q(而不是disPLAY QLOCAL(

if printf "disPLAY Q(${QName})" | runmqsc ${QMgr} 2>&1 >/dev/null; then
  echo "Queue ${QName} exists on Queue Manager ${QMgr}
fi

您的示例检查队列管理器运行可以简化为:

if dspmq -m ${QMgr}| grep --quiet '(Running)'; then
  echo "Queue Manager ${QMgr} is Running"
fi

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...