RabbitMQ를 커맨드로 컨트롤 할 수 없는지 알아보니 RabbitMQ Management Command Line Tool 이라는 것이 있더군요.

몇 가지 실험을 해보고 간단하게만 정리해봅니다. 


RabbitMQ Management Command Line Tool은 공식적으로 지원하고 있습니다.  

참고 RabbitMQ Home Page : https://www.rabbitmq.com/management-cli.html


Command Line Tool은 Python 파일로 제공되고 있습니다.  

Python 파일은 여러분이 RabbitMQ를 설치했고 Management 플러그인을 활성화한 상태면 언제든지 다운로드 할 수 있습니다. 


1. RabbitMQ Management Command Line Tool 다운로드


    위 링크로 걸어둔 웹 페이지에 잘 설명되어 있습니다. 

    http://server-name:15672/cli/   로 접속하면 아래와 같은 화면을 볼 수 있습니다. 

    으 가로로 길죠. 아무튼 server-name을 RabbitMQ가 설치된 서버 아이피 주소(ip address)로 생각하시고 접속해보세요. 

   그럼 다운로드 할 수 있는 링크가 존재합니다. 다운로드해서 적당한 이름으로 저장해주세요. 저는 그냥 rabbitmqadmin.py로 저장했습니다. 



2. 사용하기 

   

    제가 CLI (Command Line Tool)로 하고 싶었던 일은 Connection과 Queue를 모두 삭제하는 것이였습니다. 


    일단 Queue를 삭제하는 것은 너무 쉽더라구요. 


    rabbitmqadmin.py -f tsv -q list queues name | while read queue; do rabbitmqadmin.py -q delete queue name=${queue}; done


    그냥 터미널에 이렇게 위와 같이 입력하면 됩니다. 다만 rabbitmqadmin.py 라는 것은 제가 1번에서 다운로드할 때 지정한 이름이기 때문에

    다른 이름으로 저장하셨다면 그 이름으로 변경해주세요. 



    다음은 connection을 모두 삭제하는 것입니다. 이것도 위와 비슷하게 하면 되는데요. 


    rabbitmqadmin.py -f tsv -q list connections name | while read conn ; do rabbitmqadmin.py -q close connection name=${conn} ; done


    위와 같이 해서 잘 되면 다행이구요. 저 같은 경우에 connection 이름에 -> 이런 문자가 포함되어 있었습니다. 그래서 !! 위 명령어에서 에러가 나더군요.

    그래서 그냥 python script로 다래와 같이 수정했습니다. 


    import os

    connectionNameFile = os.popen("rabbitmqadmin.py -f tsv -q list connections name")

    for i in connectionNameFile.readlines():

        connCloseString = "rabbitmqadmin.py -q close connection name='" + str(i[:-1]) + "'"

        os.system(connCloseString)



     더 많은 기능이 존재하는 것 같지만 !! 일단 필요한 기능은 뽑아내서 여기까지입니다. 

     자세한 내용은 https://www.rabbitmq.com/management-cli.html

     확인하시면 되겠습니다아 :-)

+ Recent posts