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

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...