zoukankan      html  css  js  c++  java
  • 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 OK '%(ip))

    ssh.close()

    except :

    print('%s Error '%(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()
    结果:

    测试的时候一堆。修改一下可以用了!!!!
  • 相关阅读:
    静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
    编写多线程程序有几种实现方式?
    文件拷贝
    如何实现对象克隆?
    c#如何保存richtextbox的rtf格式
    C#实现文件与二进制互转并存入数据库
    c#中绝对路径和相对路径
    C#实现MySQL数据库中的blob数据存储
    CSS控制文字,超出显示省略号
    ES6 语句判断简写
  • 原文地址:https://www.cnblogs.com/Jt00/p/7509552.html
Copyright © 2011-2022 走看看