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 相关文章推荐
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
Python logging模块用法示例
Aug 28 Python
python 构造三维全零数组的方法
Nov 12 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python实现微信打飞机游戏
Mar 24 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
一行Python命令实现批量加水印
Apr 07 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
php简单防盗链实现方法
2015/07/29 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
C#面试题问题集
2016/04/02 面试题
幼儿园数学教学反思
2014/02/02 职场文书
学习之星事迹材料
2014/05/17 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
群众路线领导对照材料
2014/08/23 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
幼儿园辞职信
2015/05/13 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Python中文纠错的简单实现
2021/07/07 Python
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript
Python开发简易五子棋小游戏
2022/05/02 Python