Как удалить не запущенные узлы из кластера rabbitmq - PullRequest
0 голосов
/ 22 сентября 2019

Мне нужно удалить все узлы, которые не работают в кластере RabbitMQ, через командную строку, которую я пробовал rabbitmqctl forget_cluster_node.Но не уверен, как получить список не работающих узлов.

Я вижу все узлы и running_nodes в выводе rabbitmqctl cluster_status.Может ли кто-нибудь помочь мне разобрать его и сообщить, есть ли какое-либо другое решение для легкого удаления узлов из кластера.

Заранее спасибо!

1 Ответ

0 голосов
/ 24 сентября 2019

Разобрался сам

# Remove nodes that are not running from the cluster
nodes=($(egrep -o '[a-z0-9@-]+' <<< $(sudo rabbitmqctl cluster_status --formatter json | jq .nodes.disc)))
running_nodes=($(egrep -o '[a-z0-9@-]+' <<< $(sudo rabbitmqctl cluster_status --formatter json | jq .running_nodes)))

for node in ${nodes[@]}
do
  match_count=0
  for rnode in ${running_nodes[@]}
  do
    if [ "${node}" == "${rnode}" ]
    then
        match_count=1
        break
    fi
  done
  if [ $match_count == 1 ]
    then
        continue
    else
      sudo rabbitmqctl forget_cluster_node $node
    fi
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...