python系统监控及邮件发送
python系统监控及邮件发送
监控程序
#导入模块(获取系统信息和邮件模块)
import psutil
import smtplib
from email.mime.text import MIMEText
from email.header import Header #cpu模块
def cpu_info():
cpu = '%.2f%%' %psutil.cpu_percent(1) #把cpu的值改成百分比的形式
return cpu #内存模块
def mem_info():
mem = psutil.virtual_memory()
mem_per = '%.2f%%' %mem[2] #同上
mem_total = str(int(mem[0]/1024/1024)) + 'M'
mem_used = str(int(mem[3]/1024/1024)) + 'M'
info = {
'mem_per' : mem_per,
'mem_total' : mem_total,
'mem_used' : mem_used
}
return info #磁盘分区模块
def disk_info():
c_per = '%.2f%%' %psutil.disk_usage('C:')[3]
d_per = '%.2f%%' %psutil.disk_usage('D:')[3]
info = {
'c_per' : c_per,
'd_per' : d_per
}
return info #网卡模块
def network_info():
network = psutil.net_io_counters()
network_sent = str(int(network[0]/8/1024)) + 'kb'
network_recv = str(int(network[1]/8/1024)) + 'kb'
info = {
'network_sent' : network_sent,
'network_recv' : network_recv
}
return info #邮件发送模块
def send_mail(message):
sender = 'aa1052995312@163.com' #发送的邮箱账号
receiver = ['ruri9999@163.com'] #接收的邮箱账号
subject = '报警' #主题
username = 'aa1052995312@163.com' #发送的邮箱账号
password = 'password' #发送的邮箱密码
msg = MIMEText(message, 'plain', 'utf-8') #(邮件正文,编码,编码)
msg['Subject'] = Header(subject, 'utf-8') #抬头为subject
msg['From'] = 'TOP<aa1052995312@163.com>' #TOP标题 后面是邮箱
msg['To'] = "'ruri9999@163.com'" #接收的邮箱
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com') #邮箱服务器
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit() #主函数
def main():
cpu = cpu_info()
mem = mem_info()
disk = disk_info()
network = network_info()
msg = '''
cpu使用率:%s
==================
内存占用率:%s
内存总量:%s
内存使用量:%s
===================
C盘使用率:%s
D盘使用率:%s
====================
网卡发送量:%s
网卡接收量:%s
''' % (cpu, mem.get('mem_per'), mem.get('mem_total'), mem.get('mem_used'), disk.get('c_per'), disk.get('d_per'), network.get('network_sent'), network.get('network_recv'))
if int(cpu[:2]) > 80 or int(mem.get('mem_per')[:2]) > 80: #报警发送条件
send_mail(msg)
else :
print('没到阈值。')
if __name__ == '__main__':
main()
python系统监控及邮件发送的更多相关文章
- Python 原生2种 邮件发送(发送验证码) 的方法
import smtplib from email.mime.text import MIMEText # 第三方 SMTP 服务 mail_host = "smtp.sina.cn&quo ...
- python定时利用QQ邮件发送天气预报
大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...
- python初级实战-----关于邮件发送问题
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...
- Python编写的Linux邮件发送工具
之前有用过Linux自带的mail工具来定时发送邮件,但是要装mailx还有配mail.rc,这还比较正常,关键是到了ubantu下这工具用起来真是操蛋,如果哪天其他的unix like操作系统也有需 ...
- Python应用-完成简单邮件发送功能
项目中有时候需要用脚本来自动发送邮件,而用Python来发送邮件十分的方便,代码如下: #!/usr/bin/python #coding:utf-8 import smtplib from emai ...
- python url监控 并邮件报警
import timeimport requestsimport smtplibfrom email.mime.text import MIMETextimport datetime def Send ...
- 使用shell+python脚本实现系统监控并发送邮件
1.编辑shell脚本 [root@web03 ~/monitor_scripts]# cat inspect.sh #!/bin/bash # 设置磁盘的阀值 disk_max=90 # 设置监控i ...
- Grafana+Prometheus系统监控之webhook
概述 Webhook是一个API概念,并且变得越来越流行.我们能用事件描述的事物越多,webhook的作用范围也就越大.Webhook作为一个轻量的事件处理应用,正变得越来越有用. 准确的说webho ...
- 【Linux】结合Python 简易实现监控公司网站,邮件发送异常
背景 由于一些原因,博主负责测试的网站的服务器切换到了香港,切换后出现了多次访问超时的情况 于是主动请缨写一个自动监测的脚本,本来准备完全使用shell来写,后来发现shell发送邮件只能在测试机之间 ...
随机推荐
- 详解Python Google Protocol Buffer
为什么要使用PB? PB(Protocol Buffer)是 Google 开发的用于结构化数据交换格式,作为腾讯云日志服务标准写入格式.因此用于写入日志数据前,需要将日志原始数据序列化为 PB 数据 ...
- HCIP --- BGP属性
传播范围 默认值 大优或小优 1. Preference_Value 不传播 0 ...
- WPF应用程序管理
WPF应用程序管理(更多资源:http://cleopard.download.csdn.net/) 一.WPF应用程序由System.Windows.Application类进行管理 二.创建WPF ...
- [UWP] - 用Json格式来发送一个Post请求到WCF服务
测试实体类:(需要在客户端和服务端建了有相同字段名称的实体) public class CompositeType { public CompositeType() { SubCompositeTyp ...
- 【代码周边】-GitHub笔记
------------恢复内容开始------------ 程序员的宝库github是个好东西,其中开源的项目足够我们的使用,但是如何去精准的获取我们的项目是很多初学者的问题.特别是英语不好的我,一 ...
- JavaSwing 船只停靠管理可视化(五)
JavaSwing 船只停靠管理可视化(一) JavaSwing 船只停靠管理可视化(二) JavaSwing 船只停靠管理可视化(三) JavaSwing 船只停靠管理可视化(四) JavaSwin ...
- TurtleBot3 Waffle (tx2版华夫)(3)opencr系统安装
3. 1. 安装 Arduino IDE Opencr的安装环境的安装包,双击打开即可.进入安装的过程. 在这里你可以选择自己的安装位置. 安装已经完成,点击CLOSE 即可. 3.2. opencr ...
- 安装Apache2.4 操作系统:Centos7.4
正式安装Apache2.4 操作系统:Centos7.4,(需要关闭Selinux)1.在每安装一个服务都要养成查看是否安装,如果安装则需要卸载: #[root@yankerp ~]# rpm -qa ...
- 使用 squid 共享 虚拟专用网至局域网
最近要出差,但是公司代码放在内网环境,平时在公司使用没问题,如果不在公司,就要拨 虚拟网络以下简称:V网. 但是公司给的 V网,并不是那种,直接用系统自带的网络连接,就可以连接上的,需要装一个软件,登 ...
- fastjson复现项目代码
详情请见:https://www.cnblogs.com/yunmuq/p/14268028.html 以下是代码 // FastjsonDemo.java package test; import ...