博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python psutil结合钉钉报警
阅读量:2338 次
发布时间:2019-05-10

本文共 1315 字,大约阅读时间需要 4 分钟。

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

实验环境:

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

转载地址:http://zugpb.baihongyu.com/

你可能感兴趣的文章
Copy_from&to_user详解
查看>>
关于bash命令
查看>>
编译内核模块 .ko文件的注意事项 缺少:mmzone.h bounds.h
查看>>
Android开发:检测耳机的插入状态
查看>>
Netty 源码分析-服务端
查看>>
Netty 源码分析-ChannelPipeline
查看>>
分库分表的起源
查看>>
【深入理解JVM虚拟机】第1章 走进java
查看>>
【深入理解JVM虚拟机】第2章 java内存区域与内存溢出异常
查看>>
【深入理解JVM虚拟机】第3章 垃圾收集器与内存分配策略
查看>>
性能优化-jvm
查看>>
性能优化-mysql
查看>>
性能优化-tomcat
查看>>
JVM内存模型、指令重排、内存屏障概念解析
查看>>
【java基础】集合框架总结
查看>>
Elasticsearch-基础介绍及索引原理分析
查看>>
【深入理解JVM虚拟机】第7章 虚拟机类的加载机制
查看>>
【C++】二、指针数组与数组指针
查看>>
【C++】三、const与字符串
查看>>
【C++】四、重载,重写,重定义
查看>>