python监控服务器
import paramiko
import threading
import re
import time
import string
from sendmail import send_mail
def ssh2(ip,username,passwd,cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,2222,username,passwd,timeout=5) for m in cmd: stdin, stdout, stderr = ssh.exec_command(m) # stdin.write("Y") #简单交互,输入 ‘Y’ out = stdout.readlines() #屏幕输出 for o in out:
# time.sleep(10)
# print(o),
# p = re.compile(r'\d+%')
zf = re.findall(r'(.+%)',o)
# print(re.findall(r'(.+%)',o))
# print("".join(zf))
qc = re.findall(r'\d+',"".join(zf))
# print(qc[-1:])
# print(len(qc[-1:]))
number = map(int,qc[-1:])
for x in number:
# print(type(x))
print(x)
if x > 30:
mailto_list = ['2220781951@qq.com']
send_mail(mailto_list, ip, "ip'disk:%d" % x)
# print(type(numbers))
# a = qc[-3:]
# b = re.findall(r'\d',a)
# c = "".join(b)
# print(len(c))
# print(type(c)) # zhzf = p.findall(o)
# print(zhzf.group())
# zf = ','.join(zhzf)
# print(zf)
# zfint = zf.strip().lstrip().rstrip('%')
# print(zfint)
# print(type(zfint))
# shuzf = int(zfint)
# print(type(shuzf))
# p = re.compile(r'(\d+)%')
# print(p.findall(o))
# print(type(w))
# newint = int(w[0].strip("%")) / 100
# print(newint) print('%s\tOK\n'%(ip)) ssh.close() except : print('%s\tError\n'%(ip)) if __name__=='__main__':
cmd = ['df -h']#你要执行的命令列表
username = "root" #用户名
passwd = "123456" #密码
threads = [] #多线程
print("Begin......")
for i in (50,55,56,128,152):
ip = '192.168.6.'+str(i)
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start()
for i in (95,):
ip = '192.168.1.'+str(i)
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start()
结果:
测试的时候一堆。修改一下可以用了!!!!
python监控服务器的更多相关文章
- Python监控服务器利器--psutil
Python监控服务器利器--psutil 服务器的监控通过安装一些常用的监控软件之外,有时也需要运行一些shell或Python脚本:shell下可以使用系统自带的ps/free/top/df等sh ...
- python监控服务器应用日志,推送钉钉机器人,实时关注日志异常
生产环境多台服务器上部署了多个应用,日志出现报错时,无法及时反馈到开发人员.部署一个大型的运维监控应用,不但耗资源,而且配置也不简单. 简简单单写个python脚本来监控服务器日志就简单多了,废话不多 ...
- python监控服务器的主备模式
#-*- coding:utf8 -*-import paramikoimport re def check_active_ac(intervals=1): client = paramiko.Tra ...
- Python之路,Day4 - Python基础4
一.函数 (一)背景提要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 1 2 3 4 ...
- python函数(五)
函数 1.函数基本语法及特性 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警, 你掏空了所有的知识量,写出了以下代码 ...
- 利用 NGINX 最大化 Python 性能,第一部分:Web 服务和缓存
[编者按]本文主要介绍 nginx 的主要功能以及如何通过 NGINX 优化 Python 应用性能.本文系国内 ITOM 管理平台 OneAPM 编译呈现. Python 的著名之处在于使用简单方便 ...
- python 自动化之路 day 04
内容目录: 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 4.嵌套函数 5.递归 6.匿名函数 7.函数式编程介绍 8.高阶函数 9.内置函数 1.函数基本语法及特性 背景提要 现在老 ...
- Python 全栈开发 -- 监控篇
如果你已经玩转了 Python 编程语言语法,肯定想用这些知识,开发一款应用程序,它可以是在网上,可以炫耀或出售,那就需要全栈式开发 Python.具体如何创建,部署和运行生产 Python Web ...
- 使用 Python 的 SQLite JSON1 和 FTS5 扩展
早在九月份,编程界出现一个名为 json1.c 的文件,此前这个文件一直在 SQLite 的库里面.还有,笔者也曾总结通过使用新的 json1 扩展来编译 pysqlite 的技巧.但现在随着 SQL ...
随机推荐
- 「LibreOJ#516」DP 一般看规律
首先对于序列上一点,它对答案的贡献只有与它的前驱和后驱(前提颜色相同)构成的点对, 于是想到用set维护每个颜色,修改操作就是将2个set暴力合并(小的向大的合并),每次插入时更新答案即可 颜色数要离 ...
- 【TRICK】[0,n)中所有大小为k的子集的方法
<< k) - ; <<n)) { int x = comb & -comb, y = comb + x; comb = (((comb & ~y)/x)> ...
- P2340 奶牛会展(状压dp)
P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...
- 1394-Minimum Inversion Number
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- 洛谷P1090 合并果子
合并果子 题目链接 这个只能用于结构体中 struct item { int val; friend bool operator < (item a,item b) { return a.val ...
- [比赛总结]ACM div3 G 比赛总结
这次题目总体感觉和做阅读理解差不多,英文题目读起来相当费劲. 另外,这次比赛整个队伍中我们三个都突出存在的问题就是,把简单问题复杂化,抓不到事物的本质,因此很容易的就被题目误导. 比如C题,明明想到了 ...
- Introduction to TCP/IP
目录 First Week DHCP 子网掩码 ip路由表 Second Week ipv4 ipv6 TCP和UDP Third Week NAT RPC FTP E-mail Fouth Week ...
- EasyUI 显示表单数据 小记
界面图:
- Dispose的调用顺序
非托管资源的释放顺序. 这是应该先释放 reader 再释放 stream. 或者直接使用using,防止出错 .
- linux启动和关闭防火墙命令
在此说一下关于启动和关闭防火墙的命令:1) 重启后生效开启: chkconfig iptables on关闭: chkconfig iptables off2) 即时生效,重启后失效开启: servi ...