内容简介:本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和linux的监控。实验环境:Ubuntu16.04和windos10,python3.6.6
本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和 linux 的监控。
实验环境:Ubuntu16.04和windos10,python3.6.6
import psutil, time
import datetime
from wechatpy import WeChatClient
class Monitor():
cpu_data = []
@classmethod
def mem(cls, max=90):
val = psutil.virtual_memory().percent
if val > max:
cls.send_msg('内存使用率为{:1.f}%,超过了{}%,请关注'.format(val, max))
@classmethod
def cpu(cls, max=90):
val = psutil.cpu_percent(1)
cls.cpu_data.append(val)
if len(cls.cpu_data) >= 3:
avg = sum(cls.cpu_data) / len(cls.cpu_data)
if avg > max:
cls.send_msg('CPU使用率为{:1f}%,超过了{}%,请关注'.format(avg, max))
cls.cpu_data.pop(0)
@classmethod
def send_msg(cls, content):
cls.mail(content)
cls.wechat(content)
@classmethod
def mail(cls, content):
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
nickname = '监控程序'
# 发送者的信息
sender = 'xxx@qq.com'
password = '*****'
# 接收方的邮箱
receiver = 'aa@bb.cc'
msg = MIMEText(content, 'html', 'utf-8')
msg['From'] = formataddr([nickname, sender])
msg['Subject'] = '自动报警'
server = smtplib.SMTP_SSL('smtp.qq.com', 465)
try:
server.login(sender, password)
server.sendmail(sender, [receiver], msg.as_string())
except Exception as ex:
print(ex)
finally:
server.quit()
@classmethod
def wechat(cls, content):
client = WeChatClient('xxxx', 'xxxx')
template_id = 'xxxxx'
openid = 'xxxx'
data = {
'msg': {"value": content, "color": "#173177"},
'time': {"value": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "color": "#173177"},
}
try:
client.message.send_template(openid, template_id, data)
except Exception as ex:
print(ex)
while True:
Monitor.mem(90)
Monitor.cpu(90)
time.sleep(5)
下面是qq邮箱和微信实现报警的图片:
qq邮箱:
微信报警:
以上就是所有的代码了,谢谢
以上所述就是小编给大家介绍的《Python监控服务器实现邮件微信报警》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web2.0策划指南
艾美 / 2009-11 / 32.00元
《Web2.0策划指南(影印版)》是讲述战略的。书中的示例关注的是Web 20的效率,而不聚焦于技术。你将了解到这样一个事实:创建Web 20业务或将Web 20战略整合到业务中,意味着创建一个吸引人们前来访问的在线站点,让人们愿意到这里来共享他们的思想、见闻和行动。当人们通过Web走到一起时,可能得到总体远远大于各部分和的结果。随着传统的“口碑传诵”助推站点高速成长,客户本身就能够帮助建立站点。......一起来看看 《Web2.0策划指南》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
HEX HSV 转换工具
HEX HSV 互换工具