用python做一个系统监控程序

#coding:utf8
from email.mime.text import MIMEText
import smtplib,psutil,time,os,datetime

destination = ["[email protected]"] #定义邮件接收者
source = "[email protected]" #定义邮件发送者
mail_server = ‘smtp.qq.com‘
username = ‘775465751‘
password = ‘wrromyiywqijbdia‘

def send_mail(des,title,content):
    csj = MIMEText(content)
    csj[‘Subject‘] = title
    csj[‘From‘] = source
    csj[‘To‘] = ‘;‘.join(destination)
    try:
        a = smtplib.SMTP_SSL(mail_server,465)
        a.connect(mail_server)
        a.login(username,password)
        a.sendmail(source,destination,csj.as_string())
        a.close()
        return True
    except Exception,e:
        print e
        return False

def hostname():
    com = ‘hostname‘
    res = os.popen(com)
    content = res.read()
    return content

def mem_use():
    total_mem = psutil.virtual_memory().total
    free_mem = psutil.virtual_memory().available
    res = (psutil.virtual_memory().available/float(psutil.virtual_memory().total))*100
    return res

def system(a,b):
    cpu_info = []
    mem_info = []
    now_time = "Date %s"%datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d")
    count = 1
    print "Start monitoring "
    while True:
        time.sleep(60) #定义采集系统信息的频率,单位为秒
        if count <= 10: #定义每采集十次系统信息后输出平均值
            cpu_info.append(psutil.cpu_percent())
            mem_info.append(mem_use())
            count += 1
        else:
            cpu_info.pop(0)
            mem_info.pop(0)
            cpu_info.append(psutil.cpu_percent())
            mem_info.append(mem_use())
            cpu_avg = sum(cpu_info)/10
            mem_avg = sum(mem_info)/10
            if (cpu_avg >= a) or (mem_avg >= b):
                print("---------------------------------------------------------")
                print now_time
                warning_cpu = ("Warning CPU Used:%.2f%%")%cpu_avg
                warning_mem = ("Warning CPU Used:%.2f%%")%mem_avg
                print warning_cpu
                print warning_mem
                send_mail(destination,"Warning Server Overload",hostname()) #发送邮件,格式为:(目的,标题,正文)
            else:
                print now_time
                print("---------------------------------------------------------")
                print("Info,CPU Used:%.2f%%")%cpu_avg
                print("Info,Memory Used:%.2f%%")%mem_avg
system(0,0) #这两个0代表设置cpu和内存的阈值,前者为CPU,后者为内存

时间: 2024-08-29 20:59:15

用python做一个系统监控程序的相关文章

用Python做一个知乎沙雕问题总结

用Python做一个知乎沙雕问题总结 松鼠爱吃饼干2020-04-01 13:40 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 数据森麟 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 这两天偶然上网的时候,被知乎上一个名为“玉皇大帝住在平流层还是对流层”的问题吸引,本以为只是小打小闹,殊不知这个问题却在知乎上引发了强烈共鸣,浏览次数500W+,

用python做一个搜索引擎(Pylucene)

什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信息到网络信息库之中(一般使用爬虫):然后信息整理模块对采集的信息进行分词.去停用词.赋权重等操作后建立索引表(一般是倒排索引)构成索引库:最后用户查询模块就可以识别用户的检索需求并提供检索服务啦. 图1  搜索引擎的一般结构 2.  使用python实现一个简单搜索引擎 2.1  问题分析 从图1看,一个完整的搜

用python做一个简单的pong游戏

pong游戏就是一个用挡板去控制一个小球不触底的一个小游戏,上个世纪以电视游戏的方式发行,取得巨大的成功. 看了一点书,知道pygame是python里一个强大的模块,做出这个游戏的简易模式也不难. 主要思想:1.创建游戏界面,挡板,小球以及记分牌. 2.小球碰到游戏界面四个边界会反弹,即x方向和y方向上的速度会改变为负,碰到底边生命数会减1. 3.小球与挡板碰撞y方向速度会变负,同时分数加1. 4.游戏结束会显示相关文字. 代码如下: import pygame pygame.init() s

如何利用Python做一个答疑辅助系统!百万奖金分一杯羹?

结果 嗯-用这种PMI算法得到的结果还是不太靠谱,按照整个问题来搜索AC选项差异不大,按照"电影"这个关键词应该选B--(正确答案是C)所以还是需要把搜索结果的前几条给展示出来的.获得正确答案之后朝着各个模拟器发送一个对应位置的adb shell input去点击选项即可. 欢迎大家关注我的博客:https://home.cnblogs.com/u/Python1234/ 欢迎加入千人交流答疑群:125240963 原文地址:https://www.cnblogs.com/Python

python做一个http接口测试框架

目录结构 project case#测试用例 suite#测试目录 logs#测试日志 papi#测试类 result#测试结果 setting.py#配置文件 1.日志类,用于测试时日志记录 pyapilog.py 1 # -*-coding:utf-8 -*- 2 # !/usr/bin/python 3 __author__ = 'dongjie' 4 __data__ = '2015-05-20' 5 6 import logging 7 import datetime 8 import

[Python] 用python做一个游戏辅助脚本,完整思路

一.说明 简述:本文将以4399小游戏<宠物连连看经典版2>作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对.对于有兴趣学习游戏脚本的同学有一定的帮助. 运行环境:Win10/Python3.5. 主要模块:win32gui(识别窗口.窗口置顶等操作).PIL(屏幕截图).numpy(创建矩阵).operator(比较值).pymouse(模拟鼠标点击). 注意点: 1.如果安装pymouse不成功或者运行报错,可以考虑先通过whl 安装pyHook.然后再通过pip安装pyuseri

绕过010Editor网络验证(用python做一个仿真http server真容易,就几行代码)

010Editor是一款非常强大的十六进制编辑器,尤其是它的模板功能在分析文件格式时相当好用!网上现在也有不少010Editor的破解版,如果没钱或者舍不得花钱买授权的话,去官方下载安装包再使用注册机算号是一个比较安全的选择.不过010Editor是有网络验证功能的,可以在本地架一个HTTP服务器来绕过这个验证(网上也能找到通过修改注册表绕过的方法,没有验证).使用Python的BaseHTTPServer模块就可以实现这个功能(继承BaseHTTPRequestHandler并重写do_GET

[python]做一个简单爬虫

为什么选择python,它强大的库可以让你专注在爬虫这一件事上而不是更底层的更繁杂的事 爬虫说简单很简单,说麻烦也很麻烦,完全取决于你的需求是什么以及你爬的网站所决定的,遇到的第一个简单的例子是paste.ubuntu.com 这是一个贴代码的网站,没事喜欢看看有没有什么好玩的东西,只是上面大部分都是minecraft的东西,于是写了以下代码 1 import urllib2 2 import socket 3 import re 4 def getData(url, timeOut = 10)

使用python做一个爬虫GUI程序

整体思路和之前的一篇博客爬虫豆瓣美女一致,这次加入了图片分类,同时利用tkinter模块做成GUI程序 效果如下: 整体代码如下: 1 # -*- coding:utf-8 -*- 2 3 import requests 4 from requests.exceptions import RequestException 5 import tkinter as tk 6 from tkinter import ttk 7 from bs4 import BeautifulSoup 8 impor