8

我有 rabbitmq 和几个虚拟主机,每个都有几个队列。如何使用 rabbitmqctl 列出来自所有虚拟主机的所有队列?我试过了:

rabbitmqctl list_queues -p /*
rabbitmqctl list_queues -p *
rabbitmqctl list_queues -p /
rabbitmqctl list_queues -p ./*

有任何想法吗?

4

3 回答 3

9

试试这个:

#!/bin/bash
IFS=$'\n'
ordered_vhosts=$(./rabbitmqctl list_vhosts -q | xargs -n1 | sort -u)

for V in $ordered_vhosts; do
    echo "*****Vhost $V Total queues " $(./rabbitmqctl list_queues -q -p $V | wc -l)
    for Q in $(./rabbitmqctl list_queues -q name messages -p $V | xargs -n2 | sort -u); do
        echo "Vhost $V queue-name total-messages $Q"
    done
done
于 2017-05-05T08:59:22.840 回答
7

您可以使用for i in $(rabbitmqctl list_vhosts); do echo vhost: $i && rabbitmqctl list_queues -p $i; done仅从命令行运行

于 2018-08-29T15:54:29.100 回答
0

这个对我有用

rabbitmqctl list_vhosts | xargs -n1  rabbitmqctl list_queues -p
于 2020-11-18T13:02:06.287 回答