博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activemq判断队列存活脚本(二)
阅读量:6339 次
发布时间:2019-06-22

本文共 2287 字,大约阅读时间需要 7 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#脚本用途:检测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 
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'
))    
#考虑一下这里为什么会有一个strip?
        
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端口处于监听状态,现在尝试往里面发送消息..."
)
        
try:
                
GoListen(Aip)
        
except stomp.exception.ConnectFailedException:
                
print (
"发送信息失败,请重启Activemq进程..."
)
    
elif 
list == [
'0'
'1'
'0'
]:
        
print (
"第二台机器的61613端口处于监听状态,现在尝试往里面发送消息..."
)
        
try:
                
GoListen(Bip)
        
except stomp.exception.ConnectFailedException:
                
print (
"发送信息失败,请重启Activemq进程..."
)
    
elif 
list == [
'0'
'0'
'1'
]:
        
print (
"第三台机器的61613端口处于监听状态,现在尝试往里面发送消息..."
)
        
try:
                
GoLinten(Cip)
        
except stomp.exception.ConnectFailedException:
                
print (
"发送信息失败,请重启Activemq进程..."
)
    
else
:
        
print (
"activemq的61613端口处于异常,现在重启这三台mq..."
)
        
pass    
#这里可以单独写一个远程activemq重启的脚本
         
if 
__name__ == 
"__main__"
:
        
Checknetstat()
        
Remotecommand()
 
print(
"整个脚本执行结束,感谢您的使用!"
)

基本上来说,整个脚本的结构就是这样的,里面汉字的内容可以依照实际情况填写进去。

远程重启activemq脚本这里就不写了,跟远程查询61613端口的脚本一模一样,就是里面的命令改一下,所以在正常情况下启动本脚本的效果就是这样的:

或者是:

 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1884415

转载地址:http://egeoa.baihongyu.com/

你可能感兴趣的文章
【HDU 4602】Partition
查看>>
windows7下virtualBox配置识别usb
查看>>
如何判断一个对象是否是数组。
查看>>
CF Zepto Code Rush 2014 B. Om Nom and Spiders
查看>>
Sublime Text 3103 Crack 破解 注册码
查看>>
html 表格
查看>>
(笔记)Linux内核学习(九)之内核内存管理方式
查看>>
HTTP ----通信机制
查看>>
Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
查看>>
EF Code First Migrations数据库迁移
查看>>
I.MX6 Android backlight modify by C demo
查看>>
深入剖析Java中的自动装箱和拆箱过程
查看>>
tcpdump
查看>>
mfc通过消息传递参数进行程序间通信
查看>>
[spring] java.lang.reflect.MalformedParameterizedTypeException
查看>>
useradd、passwd、userdel
查看>>
系统网络概述
查看>>
λ怎么 读
查看>>
Redis常用命令入门——列表类型(一级二级缓存技术)
查看>>
WinForm------Reflector反编译工具下载
查看>>