python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警

Meta ·
更新时间:2024-11-13
· 688 次阅读

    使用Windows的wmic命令,获取可执行文件的运行状况、文件路径、PID,如果可执行文件挂掉,就重启并邮件告警。

      因为监控的可执行文件的文件名一样,不好区分,所以我使用文件的绝对路径为标准来判断是否正常运行,代码及详细解释如下:

# -*- coding: utf-8 -*- import os import win32api import smtplib from email.mime.text import MIMEText def get_pidWay(file_name): ept_list = [] temp_list = [] pid_way = os.popen("wmic process where name='" + file_name + "' get processid,executablepath,name").readlines() for j in pid_way: temp_list.append(j.split()) while ept_list in temp_list: temp_list.remove(ept_list) return(temp_list) def open_file(filePath): win32api.ShellExecute(0, 'open', filePath, '','',1) def mailsend (mailtext,mailsubject): mailserver = "smtp.qq.com" username_send = '发送的邮箱地址' password = '密码' username_recv = '接收的邮箱地址' mail = MIMEText(mailtext) mail['Subject'] = mailsubject mail['From'] = username_send mail['To'] = username_recv smtp = smtplib.SMTP_SSL(mailserver) smtp.login(username_send,password) smtp.sendmail(username_send,username_recv,mail.as_string()) smtp.quit() print ('success') file_path = "可执行文件的绝对路径" fileName = '可执行文件名' mailtext = '报警邮件内容' mailsubject = '报警邮件标题' exe_info = get_pidWay(fileName) pos = 0 for i in range(len(exe_info)): if file_path in exe_info[i][0]: pos = 1 else: pass if pos == 1: pass else: open_file(r"可执行文件名") mailsend(mailtext,mailsubject) 1.get_pidWay函数:

  输入file_name,返回文件路径、文件名、文件Pid的列表,用split函数和ept_list字符串使返回的列表变成[[文件路径,文件名,Pid],[文件路径,文件名,Pid]]这样的二维数组;

2.open_file函数:

  使用win32api模块,类似在cmd中执行程序,打开指定的可执行文件;

3.mailsend函数:

  发送邮件,我用的qq的smtp模块,在qq邮箱的设置里可以开启smtp端口;

  username_send发送邮件的邮箱地址,password是开启smtp端口时弹出的字符串;

  username_recv收邮件的邮箱地址;

  在内网要采用smtplib.SMTP_SSL(mailserver)连接(其中mailserver= ‘smtp.qq.com'),使用smtp = smtplib.SMTP(mailserver,port=465)方式会报错:smtplib.SMTPServerDisconnected: Connection unexpectedly closed

4.主函数:

  file_path :放置可执行文件的目录;

  fileName:可执行文件的文件名;

  for循环来判断file_path是否在我们 get_pidWay函数返回的列表中,从而知道可执行文件是否正常运行;

  如果没有运行,pos = 0,则运行文件、发送邮件。

以上就是python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警的详细内容,更多关于python wmic命令监控文件运行状况的资料请关注软件开发网其它相关文章!

您可能感兴趣的文章:用pushplus+python监控亚马逊到货动态推送微信用python监控服务器的cpu,磁盘空间,内存,超过邮件报警python 监控服务器是否有人远程登录(详细思路+代码)如何基于Python和Flask编写Prometheus监控Python系统公网私网流量监控实现流程python 监控logcat关键字功能Python脚本实现Zabbix多行日志监控过程解析Python实时监控网站浏览记录实现过程详解python实时监控logstash日志代码Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例Python 实现网课实时监控自动签到、打卡功能Python3监控疫情的完整代码



发送邮件 监控 异常 运行 windows 邮件 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号