Activemq判断队列存活脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activemq判断队列存活脚本相关的知识,希望对你有一定的参考价值。
#脚本用途:检测Activemq集群的端口监听情况及其队列通畅情况 #!/usr/bin/env python #coding=utf-8 import paramiko import time import sys import stomp Aip = ("第一台mq服务器") Bip = ("第二台mq服务器") Cip = ("第三台mq服务器") list = [] def Checknetstat(): for i in (Aip,Bip,Cip): hostname=i username="root" password="服务器密码" #这里默认三台服务器的密码是一样的 paramiko.util.log_to_file("syslogin.log") ssh=paramiko.SSHClient() ssh.load_system_host_keys() ssh.connect(hostname=hostname,username=username,password=password) stdin,stdout,stderr=ssh.exec_command("netstat -ntpl | grep 61613 | wc -l") word=str(stdout.read().strip(‘\n‘)) list.append(word) #把for循环的结果变成一个list ssh.close() print list def GoListen(xip): class MyListener(object): def on_error(self, headers, message): print(‘received an error %s‘ % message) def on_message(self, headers, message): print(‘received a message %s‘ % message) conn = stomp.Connection([(xip,61613)]) conn.set_listener(‘‘, MyListener()) conn.start() conn.connect(‘mq的账户‘,‘mq的密码‘) conn.subscribe(destination=‘/queue/队列名称‘, id=1, ack=‘auto‘) conn.send(body=‘具体的消息内容‘, destination=‘/queue/队列名称‘) time.sleep(2) conn.disconnect() def Remotecommand(): if list == [‘1‘, ‘0‘, ‘0‘]: print ("第一台机器的61613端口处于监听状态,现在尝试往队列发送消息...") GoListen(Aip) #这里应该加一个try语句 elif list == [‘0‘, ‘1‘, ‘0‘]: print ("第二台机器的61613端口处于监听状态,现在尝试往队列发送消息...") GoListen(Bip) elif list == [‘0‘, ‘0‘, ‘1‘]: print ("第三台机器的61613端口处于监听状态,现在尝试往队列发送消息...") GoLinten(Cip) else: print ("activemq的61613端口处于异常,现在重启这三台mq...") pass #这一段补上远程restart activemq的过程 if __name__ == "__main__": Checknetstat() Remotecommand() print("整个脚本执行结束,感谢您的使用!")
基本上来说,整个脚本的结构就是这样的,里面汉字的内容可以依照实际情况填写进去。
目前由于没有完全try语句,所以在正常情况下启动本脚本的效果就是这样的:
本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1884415
以上是关于Activemq判断队列存活脚本的主要内容,如果未能解决你的问题,请参考以下文章