天天看点

python psutil结合钉钉报警

郑重声明如有雷同纯属巧合,本人自学的没有任何编程经验 ,写的不好 随便喷 。废话不多说,直接上代码。

实验环境:

Cent  OS 6.5

python 2.7

########################################################################################################################

#coding:utf-8

import socket

import time

import psutil

import json

import urllib

import urllib2

import getpass

#url  webhook的地址  就是你钉钉群里自定义机器人webhook地址

url = "webhook地址"

headers = {

    "Content-Type":"application/json",

    "Charset":"utf8"

    }

content_type = []

#获取IP地址

def get_ip():

    try:

        csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        csock.connect(('8.8.8.8', 80))

        (addr, port) = csock.getsockname()

        csock.close()

        return addr

    except socket.error:

        return "127.0.0.1"

#获取主机的信息

def details(interval=1):

    cpu_status = psutil.cpu_percent(interval)

    host_name = socket.gethostname()

    ip_addr = get_ip()

    mem_status = psutil.virtual_memory().percent

    return ip_addr,cpu_status,mem_status

try:

    while 1:

        content_type = details()

        c = int(content_type[1])

        m = int(content_type[2])

        if c >= 80 or m >= 80:

           #发送的内容及格式

           data = {

               "msgtype": "text",

                "text": {

                    "content": content_type

                },

                "at": {

                        "atMobiles": [

                        "",

                        ],

                        #是否@所有人   False|True

                        "isAtAll": True

                      }

               }

           sendData = json.dumps(data)

           request = urllib2.Request(url,data = sendData,headers = headers)

           urllib2.urlopen(request)

           #等待5秒

           interval = 5

except (KeyboardInterrupt, SystemExit):

        pass