python监控服务器的主备模式
2024-10-14 17:30:13
#-*- coding:utf8 -*-
import paramiko
import re def check_active_ac(intervals=1):
client = paramiko.Transport(('主备的虚拟ip', 22))
# paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能
client.connect(username='username', password='password')
# 打开一个通道
chan = client.open_session()
chan.settimeout(5)
# 获取终端
chan.get_pty()
# 激活终端,这样就可以登录到终端了,就和类似于xshell登录系统一样
chan.invoke_shell()
chan.recv(65535)
# 设置缓冲区大小
chan.send('show high-availability status \n')
# 执行'show high-availability status'命令,查看高可用状态
output = chan.recv(65535).decode()
print(output)
# 退出终端
chan.send('exit \n')
client.close()
search_string = output.split('\n')[7]
'''print('\n')'''
'''print("4位:", search_string)'''
if re.search(r'primary', search_string, flags=re.IGNORECASE):
'''re.IGNORECASE忽略大小写'''
active_ac = '主ip'
'''print("主ip: Primary active")''' elif re.search(r'secondary', search_string, flags=re.IGNORECASE):
active_ac = '备ip'
'''print("备ip: Secondary active")'''
else:
#print("0")
return
test = check_active_ac()
最新文章
- 火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版
- C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
- 一个简单确非常实用的javascript函数
- With语句以及@contextmanager的语法解析
- Qt 学习资料
- .NET 中的DateTime
- MySQL 调优基础:Linux内存管理 Linux文件系统 Linux 磁盘IO Linux网络
- ASP.NET多用户操作相同互斥的对象
- eclipse plugin 导出插件包
- 带着新人看java虚拟机02
- react服务端渲染同构报错Browser history needs a DOM
- [NOI 2017]整数
- linux每日命令(23):find命令之xargs
- Centos 6.4 安装erlang&;rabbitmq
- String扩展 让你在PadLeft和PadRight时不再受单双字节问题困扰
- kiss prefix paleo,per,pen,pan,para out 1
- 转-为什么Lisp语言如此先进?(译文)
- 理解Defer、Panic和Recover
- 独立成分分析(Independent component analysis, ICA)
- cocos2d 中使用jni C++ 调用 Java 方法