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发送邮件只能在测试机之间 ...
随机推荐
- Centos7.6上利用docker搭建Jenkins来自动化部署Django项目
一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚. 整个过程相当复 ...
- 安装篇二:CentOS 6.9系统安装
具体安装流程,请查下面安装图片 安装时五个选项说明如下:
- [PASECA2019]honey_shop writeup
这是PASECA2019的一道web题 前端是一个蜂蜜商店,你有$1336,可以买蜂蜜和flag.但是flag要$1337,所以我们只能买蜂蜜. 一般这种题目的常规操作就是通过修改你的钱使你能够买到f ...
- C# ——获取各国时间
DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local); DateTime dt1 = TimeZo ...
- python谷歌序列化传输
今日破解某app加密app当中用到了谷歌序列化传输 1.请求序列化文件 # Generated by the protocol buffer compiler. DO NOT EDIT! # sour ...
- 搭建web攻防环境
提示:本实验仅用于学习参考,不可用作其他用途! 任务一.基于centos7搭建dvwa web服务靶机 在centos7安装LAMP并启动,访问phpinfo页面 从互联网下载dvwa并解压到/var ...
- hive集群模式安装
hadoop3.2.0 完全分布式安装 hive-3.1.1 #解压缩tar -zxvf /usr/local/soft/apache-hive-3.1.1-bin.tar.gz -C /usr/lo ...
- 入门oj 5499: 讲话模式
Description 每个人说话都有口头禅,现给出一个字符串,请求出其中出现次数最多的单词(不区分大小写). Input 输入一行,长度小于等于1048576的字符串输入至少包含一个字母或数字 Ou ...
- QT串口通信编程
QT串口编程 文件夹目录结构如下图所示 设计的示例界面如下图所示 首先在项目文件里面添加一句 QT += serialport SerialPortDemo.pro文件如下: #----------- ...
- redhat_快捷键和shell命令操作.md
tab键 命令自动补全 history !n 执行历史记录第n条 !! 执行上一条命令 !l 最后一条以l开头的命令 alias 创建命令的别名 alias 命令别名 = "命令行" ...