python运维脚本监控windows发送报警邮件

监控cpu信息.py

import time

import psutil
import datetime

while True:
    # 监控cpu
    cpu = psutil.cpu_percent(interval=1)
    stCpu = "当前cpu使用率{}%".format(cpu)
    # 监控内存
    memory = psutil.virtual_memory()
    memory = memory.percent
    strMemory = "当前内存占使用率{}%".format(memory)

    # 监控磁盘
    disk = psutil.disk_usage("C:/")
    disk = disk.percent
    # print(disk)
    strDisk = "当前磁盘使用率{}%".format(disk)
    # print(strDisk)

    # 监控网络
    network = psutil.net_io_counters()
    strNetwork = "网络{}".format(network)
    # network = network.percent
    # print(network)

    # 监控进程
    pid_list = psutil.pids()
    strPid_list = "进程{}".format(pid_list)
    # print(pid_list)

    # 获取系统时间
    windowstime = datetime.datetime.now().strftime("%F %T")
    strWindowstime = "系统时间{}".format(windowstime)
    # print(windowstime)

    time.sleep(1)


    # 设置使用率监控报警
    # if cpu >= 80 or memory >= 80 or disk >= 80:
    with open("test.txt", "w", encoding="utf-8") as f:
        f.write(stCpu + "\n")
        f.write(strMemory + "\n")
        f.write(strDisk + "\n")
        f.write(strNetwork + "\n")
        f.write(strPid_list + "\n")
        f.write(strWindowstime + "\n")
        f.write("20200219135-郭德庆")
        print("已发送")
        # # if cpu >= 80:
        # #     print("添加cpu")
        #     # 设置写入
        #     f.write(stCpu)
        # # if memory >= 80:
        # #     print("添加内存")
        #     # 设置写入
        #     f.write(strMemory)
        # # if disk >= 80:
        # #     print("添加磁盘信息")
        #     # 设置写入
        #     f.write(strDisk)
    with open("log.log", "a", encoding="utf-8") as f:
        f.write(stCpu)
        f.write(strMemory)
        f.write(strDisk + "\n")

监控日志文件.py

import os
import time
import smtplib
from email.mime.text import MIMEText

# 被监视的文件路径
filename = 'test.txt'

# 获取文件的初始修改时间和大小
last_modified_time = os.path.getmtime(filename)
last_size = os.path.getsize(filename)
last_position = 0
while True:
    # 等待时间
    time.sleep(1)

    # 获取当前修改时间和大小
    current_modified_time = os.path.getmtime(filename)
    current_size = os.path.getsize(filename)

    # 文件的修改时间发生变化
    if current_modified_time != last_modified_time or current_size != last_size:
        print('文件内容发生变化!')
        new_content = ""
        # 读取文件的新内容并进行处理
        with open(filename, 'r', encoding="utf-8") as f:
            new_content = f.read()

        last_modified_time = current_modified_time
        last_size = current_size

        # 创建发送邮箱
        # 服务器地址
        host = 'smtp.qq.com'
        # 账号
        user = '484425684@qq.com'
        # 密码授权码
        password = 'arstcniiyrelbidj'
        # 密码授权码
        key = 'arstcniiyrelbidj'

        # 发送人邮箱
        receivers = ['484425684@qq.com']

        # 发送内容
        message = MIMEText(new_content, "plain", 'utf-8')
        # 发送人
        message["From"] = user
        # 发送给谁
        message["To"] = ";".join(receivers)
        message["Subject"] = "CPU、内存和磁盘使用率过高"
        smtpObj = smtplib.SMTP()
        # 指定是上面邮箱
        smtpObj.connect(host, 25)
        # 登录邮箱
        key = 'arstcniiyrelbidj'
        smtpObj.login(user, password)
        smtpObj.sendmail(user, receivers, message.as_string())
        key = 'arstcniiyrelbidj'
        print("邮件报警发送成功")
        smtpObj.quit()

test.txt

当前磁盘使用率90.4%

log.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值