python监控服务器

import paramikoimport threadingimport reimport timeimport stringfrom sendmail import send_maildef 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 = [‘[email protected]‘]                         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()结果:

测试的时候一堆。修改一下可以用了!!!!
时间: 2024-08-08 19:21:50

python监控服务器的相关文章

使用python脚本,调用post方式监控服务器状态

公司一台app服务器需要监控状态.开发人员要求使用post方式(json格式参数),查看服务器返回状态.才能确定服务器是否正常.使用get方式是不行的. 我采用python写个脚本监控.过程如下: 创建key: [[email protected] zabbix_agentd.conf.d]# cat httppost.conf UserParameter=http.post,/usr/bin/python /etc/zabbix/scripts/httppost.py 测试key: [[ema

学python的第二周

#Python之路,Day3 - Python基础3 转自金角大王 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 + 2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身份证列表 3. 字典 key-value对 特性: 无顺序 去重 查

3.关于python函数,以及作用域,递归等知识点

一.使用函数编程的好处. 大大的提高了代码的重用行,重复的逻辑或者操作,可以定义到一个函数里,多次调用. 下面是关于提高代码重用性的例子. 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码. while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 i

第七篇 python基础之函数,递归,内置函数

阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做

python之路:python基础3

---恢复内容开始--- 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >>> a = {1,2,3,4} >>> b ={3,4,5,6} >>> a {1

python学习第三周(下 函数)

本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值  嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身份证列表 3. 字典 key-value对 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存多 为什么会查询速度会快呢?

python基础之函数,递归,内置函数

一 数学定义的函数与Python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域 例如y=2*x python中函数定义:函数是逻辑结构化和过程化的一种编程方法. python中函数定义方法: def test(x): "The function definitions" x+=1 return x def:定

Python之路,Day20 - 分布式监控系统开发

Python之路,Day20 - 分布式监控系统开发 本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设计思路及架构解藕原则 常用监控系统设计讨论 Zabbix Nagios 监控系统需求讨论 1.可监控常用系统服务.应用.网络设备等 2.一台主机上可监控多个不同服务.不同服务的监控间隔可不同 3.同一个服务在不同主机上的监控间隔.报警阈值可不同

python基础-函数_递归_内置函数

一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量与全局变量 六 前向引用之'函数即变量' 七 嵌套函数 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一.数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域