使用 rabbitmqadmin 实现 cli命令行下的mq简单运维
16lz
2021-03-14
使用 rabbitmqadmin 实现 cli命令行下的mq简单运维
rabbitmqadmin的安装和常用命令如下:
https://www.rabbitmq.com/management-cli.htmlwget http://{mq_addr}:15672/cli/rabbitmqadminchmod +x rabbitmqadminmv rabbitmqadmin /usr/bin/rabbitmqadminrabbitmqadmin --bash-completion > /etc/bash_completion.d/rabbitmqadmin## 查看支持的子命令rabbitmqadmin help subcommands列出当前的 exchangesrabbitmqadmin list exchanges# Get a list of queues, with some columns specifiedrabbitmqadmin list queues vhost name node messages message_stats.publish_details.rate# Get a list of queues, with all the detail we can takerabbitmqadmin -f long -d 3 list queues# 列出当前的queuerabbitmqadmin list queues# 列出当前的vhostsrabbitmqadmin list vhosts# 查看rabbitmq的消息rabbitmqadmin get queue="qqqq1" count=20 -f pretty_json # 或者 -f table 格式输出(建议使用pretty_json)# 清空某个queuerabbitmqadmin purge queue name="qqqq1"
下面我们基于rabbitmqadmin+jenkins实现一个自助式的小功能
原理: 使用rabbitmqadmin这个python命令行去执行相关的命令获取mq的信息(建议在mq机器上执行)
# 查看rabbitmq的消息: rabbitmqadmin get queue="qqqq1" count=20 -f pretty_json# 清空某个queue: rabbitmqadmin purge queue name="qqqq1"
#!/bin/bashsource /etc/profile# 这里生成对应的脚本,然后通过ansible下发到mq-01上去执行,并获取返回值echo ${CHOICE}echo ${QUEUE_NAME}echo ${NUMBER}echo ${confirm}workspace='/tmp'/cd ${workspace}if [ "${confirm}" == 'NO' ]; then echo "您刚才选择的是NO, 脚本将不再往下执行。" exit 10fiif [[ "${CHOICE}" == 'GET_MESSAGE' ]]; then echo "rabbitmqadmin get queue=\"${QUEUE_NAME}\" count=${NUMBER} -f pretty_json" > task.shelif [[ "${CHOICE}" == 'PURGE_MESSAGE' ]]; then echo "rabbitmqadmin purge queue name=\"${QUEUE_NAME}\"" > task.shficat task.sh# 使用ansible将脚本推送到mq机器去执行(或者本地执行也行,只要rabbitmqadmin命令行里面配置下mq的连接参数即可)# ansible推送并执行的命令,这里我就不贴了。。。。
最终的效果:
©著作权归作者所有:来自51CTO博客作者我的二狗呢的原创作品,如需转载,请注明出处,否则将追究法律责任你的鼓励让我更有动力
赞赏
0人进行了赞赏支持
更多相关文章
- Terraform,从一个简单的例子开始
- Gerrit升级实践:从2.15.x升级至3.2.x
- 这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加
- PyCharm激活码,亲测有效(支持最新PyCharm2020.3 激活码)
- linux终端命令
- vim命令
- linux初始化配置
- 操作系统-进程的初步实现
- 构建自动化发布系统之jenkins、gitlab 、sonar结合