python监控CPU/内存/磁盘,超过指定百分比,发送邮件
#!/usr/bin/python
#coding:utf-8 #导入psutil模块
import psutil
import yagmail def mail(subject,contents): #形参为邮件的标题和内容
yag = yagmail.SMTP(user='zhangweihappy8@163.com', password='xxx', host='smtp.163.com') #passwd为授权的密码不是登陆密码
#发送邮件
yag.send(to='zui_city_zhang@163.com',subject=subject, contents=contents)
#断开连接
yag.close() def cpu_info():
cpu = psutil.cpu_percent(1)
return cpu
res=cpu_info() def mem_info():
mem = psutil.virtual_memory()
info1={'mem_total':mem[0],'mem_free':mem[1],'mem_percent':mem[2],'mem_used':mem[3]}
return info1
res2=mem_info() def disk_info():
disk = psutil.disk_usage('/')
info2 = {'total': disk[0], 'used': disk[1], 'free': disk[2], 'percent': disk[3]} #同样写入一个字典
return info2
res3=disk_info() def main():
m_cpu = res
m_mem = res2
m_disk = res3 #将各个分函数的调用结果当作函数体输入
msg='''
cpu使用率%s
内存总量%sM
内存剩余%sM
内存使用率%s
内存使用量%sM
磁盘总量%sGB
磁盘使用量%sGB
磁盘剩余量%sGB
磁盘使用率%s%%
'''%(m_cpu,int(m_mem.get('mem_total')/1024/1024),int(m_mem['mem_free']/1024/1024),m_mem['mem_percent'],int(m_mem['mem_used']/1024/1024),int(m_disk['total']/1024/1024/1024),int(m_disk['used']/1024/1024/1024),int(m_disk['free']/1024/1024/1024),m_disk['percent'])
print(msg)
if m_cpu >50:
mail('cpu报警',msg)
else:
print('cpu正常')
if m_mem['mem_percent'] > 50:
mail('内存占用过半',msg)
else:
print('relax')
if m_disk['percent'] > 50:
mail('磁盘快炸了',msg)
else:
print('磁盘正常') if __name__=='__main__':
main()
python监控CPU/内存/磁盘,超过指定百分比,发送邮件的更多相关文章
- python监控cpu 内存实现邮件微信报警
# qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 import psutil, time,smtplib,socket import ...
- 利用shell监控cpu、磁盘、内存使用率
利用shell监控cpu.磁盘.内存使用率,达到警报阈值发邮件进行通知 并配合任务计划,即可及时获取报警信息 #!/bin/bash ################################# ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...
- centos8平台使用pidstat监控cpu/内存/io
一,安装pidstat: 1,安装 [root@localhost yum.repos.d]# yum install sysstat 2,查看版本: [root@localhost ~]# pids ...
- AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令
1.1 硬件环境验证方式 硬件环境主要包括CPU.内存.磁盘/存储.网络设备(如F5等).系统特有设备(如密押设备等)等,其中网络设备和系统特有设备由网络管理员或项目组提供为准,本节主要关注CP ...
- linux系统CPU内存磁盘监控发送邮件脚本
#!/bin/bashexport PATHexport LANG=zh_CN.UTF-8###top之后输入数字1,可以查看每颗CPU的情况.###先配置好mailx邮箱账号密码:#cat>/ ...
- python监控cpu 硬盘 内存
import psutil import time import yagmail def sendmail(subject,contents): yag = yagmail.SMTP(user='15 ...
- Ubuntu系统监控cpu memery 磁盘Io次数 IO速率 网卡 运行时间等信息的采集
实验室最近在做的项目要做ubuntu系统监控,要获得系统的一些信息并返回给web服务器. web服务器与ubuntu主机的通信我写的程序用的是socket,至于为什么不用java程序ssh到对应的主机 ...
- Shell采集系统cpu 内存 磁盘 网络信息
cpu信息采集 cpu使用率 采集算法 通过/proc/stat文件采集并计算CPU总使用率或者单个核使用率.以cpu0为例,算法如下: 1. cat /proc/stat | grep ‘cpu0’ ...
随机推荐
- Vscode中打开、新建内部终端快捷键方法
设置->键盘快捷方式->搜索集成终端->切换集成终端/新建集成终端 Windows 电脑 组合键 说明 Ctrl + ~ 打开默认终端 Ctrl + Shift + ~ 新建新的终端 ...
- Django:(06)Django模版
一.模版的使用 配置 如果是命令行创建的项目需要手动配置模版文件目录(如果是Pycharm创建的项目则无需配置) 在项目根目录下创建目录templates, 用来存放模版文件 在项目的配置文件夹set ...
- IndemindSDK数据采集程序
目录 Indemind相机数据采集 Indemind相机数据采集 最近做一些实验需要自己采集一些数据玩玩,打算用之前买的indemind双目模组,实际用的时候感觉官方提供的采集程序不太好用,于是打算自 ...
- Node async 控制代码执行顺序
当你有一个集合,你想循环集合,然后对每个集合按照顺序执行相应的方法你可以使用forEachSeries
- Java编程思想(三)控制程序流程
3.1.10逗号运算符 我们可以使用一系列由逗号分隔的语句,而且哪些语句均会独立执行. 3.1.15复习计算顺序
- axios对请求各种异常情况处理的封装
前端网络请求封装 前端采用了axios来处理网络请求,为了避免在每次请求时都去判断各种各样的网络情况,比如连接超时.服务器内部错误.权限不足等等不一而足,我对axios进行了简单的封装,这里主要使用了 ...
- oracle中Blob、Clob、Varchar之间的互相转换
以下是oracle中Blob.Clob.Varchar之间的互相转换(都是百度找的,亲测可用) Blob转Varchar2: CREATE OR REPLACE FUNCTION blob_to_va ...
- java--键盘输入任意数字进行求和
思路,我将键盘输入的数放入数组,然后便利数组进行求和 package com.test.day01; import java.util.Scanner; public class Test { pub ...
- LC 387. First Unique Character in a String
题目描述 Given a string, find the first non-repeating character in it and return it's index. If it doesn ...
- npm—入门指导
npm npm是什么? NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜索.发布等. npm的背 ...