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


Posted in Python onJanuary 30, 2021

    使用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命令监控文件运行状况的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
利用python微信库itchat实现微信自动回复功能
May 18 Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
24式加速你的Python(小结)
Jun 13 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
python可视化text()函数使用详解
Feb 11 Python
python词云库wordcloud的使用方法与实例详解
Feb 17 Python
如何将json数据转换为python数据
Sep 04 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
如何用Django处理gzip数据流
Jan 29 #Python
Spy++的使用方法及下载教程
Jan 29 #Python
Python实现随机爬山算法
Jan 29 #Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 #Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 #Python
python热力图实现简单方法
Jan 29 #Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 #Python
You might like
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
python字符串编码识别模块chardet简单应用
2015/06/15 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
python抓取网页中链接的静态图片
2018/01/29 Python
python生成九宫格图片
2018/11/19 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
python实现代码审查自动回复消息
2021/02/01 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
留学推荐信中文范文三篇
2014/01/25 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
现场施工员岗位职责
2014/03/10 职场文书
安全生产月活动总结
2014/05/04 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
奖金申请报告模板
2015/05/15 职场文书
百家讲坛观后感
2015/06/12 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
python游戏开发Pygame框架
2022/04/22 Python