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发送邮件只能在测试机之间 ...
随机推荐
- 【对线面试官】Java注解
public void send(String userName) { try { // qps 上报 qps(params); long startTime = System.c ...
- Office__自动保存和恢复
#1.前言 在您埋头辛苦编辑Excel.Word或PPT文档的时候,如果突然发生断电.系统崩溃.意外误操作,本文将以Excel2010为例详细阐述其中自动保存功能的工作机理和恢复文件的访问方法,Exc ...
- 生成对抗网络(Generative Adversarial Networks, GAN)
生成对抗网络(Generative Adversarial Networks, GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的学习方法之一. GAN 主要包括了两个部分,即 ...
- CentOS7下常用安装服务软件yum方式的介绍
简介:介绍yum软件包的管理并配置本地yum源 yum安装:基于 C/S 架构,yum安装称之为傻瓜式安装 yum安装优点:方便快捷,不用考虑包依赖,自动下载软件包. yum安装缺点:人为无法干预,无 ...
- 安装Yii2框架
一.Windows安装Yii2 1.安装Composer Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl,打开 php 目录下的 php.ini,将 extensi ...
- Springboot 源码解析-自定装配
面试官经常会问你知道springboot的自定装配吗?它是怎么实现的吗?今天我们就来通过源码一起分析下它吧.首先我们先搭建一个springboot的简单项目,找到启动类, 然后通过这个注解我们进入到@ ...
- Redis在存取序列化和反序列化性能问题
1. 问题场景 我们在使用Redis的时候经常会将对象序列化存储到Redis中,在取出的时候进行反序列化,如果对象过大在进行序列化和反序列化的时候会有一定性能问题.今天查看了CSRedis源码发现在S ...
- 在 ASP.NET Core和Worker Service中使用Quartz.Net
现在有了一个官方包Quartz.Extensions.Hosting实现使用Quartz.Net运行后台任务,所以把Quartz.Net添加到ASP.NET Core或Worker Service要简 ...
- 使用 SOS 对 Linux 中运行的 .NET Core 进行问题诊断
目录 说明 准备一个方便的学习环境 2.x 配置内容 3.x 配置内容 工具介绍 lldb sos plugin 1. attach 到进程上进行调试 2. 分析core dump文件 SOS 案例分 ...
- linux系统操作系统网卡漂移解决方案及问题原因
一.问题描述 公司有100-150台服务器安装RHEL7.4&中标麒麟7.4系统,为方便编辑配置网卡,使用脚本方式配置为biosname=0,ifname=0,目的是为将en1o2p此类长字符 ...