2022年8月12日 作者 zeroheart

服务器状态

crontab -e

*/1 * * * * python3 /root/shell/test.py && echo "runing succeed!" >> /root/shell/test.log 2>&1

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import psutil   # python获取系统信息模块,需要额外安装
import smtplib  # 发送邮件
from email.mime.text import MIMEText  # 构造纯文本邮件
from email.utils import formataddr # 格式化邮件地址
 
cpuUsed=psutil.cpu_percent(interval=1)
diskUsed=psutil.disk_usage('/').percent
 
def structural_mail(text, recipient):
    msg = MIMEText(text, 'plain', 'utf-8')
    msg['From'] = formataddr(["zzz", '[email protected]'])  # 发件人
    msg['To'] = formataddr([recipient, recipient])  # recipient收件人
    msg['Subject'] = "监控报警"  # 主题
    return msg
 
 
def send_mail(text, recipient):
    from_addr = '[email protected]'
    password = 'pass'
    smtp_server = 'smtp.qq.com'
    smtp_port = 465
    to_addr = []  # 可以一次发给多个人,因此传入一个列表
    to_addr.append(recipient)
 
    msg = structural_mail(text, recipient)
 
    server = smtplib.SMTP_SSL(smtp_server, smtp_port)
    server.login(from_addr, password) 
    server.sendmail(from_addr, to_addr, msg.as_string())
 
 
def check():
    if cpuUsed >= 80 or diskUsed >= 85:
       send_mail('CPU使用率:{}%,磁盘使用率:{}%'.format(cpuUsed, diskUsed),'[email protected]')
 
if __name__ == '__main__':
    check()