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统计日志中每个IP出现次数的方法
Jul 06 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
python 文件操作删除某行的实例
Sep 04 Python
python模拟表单提交登录图书馆
Apr 27 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
Python @property装饰器原理解析
Jan 22 Python
python实现PCA降维的示例详解
Feb 24 Python
Python如何定义有默认参数的函数
Aug 10 Python
浅谈Python中的正则表达式
Jun 28 Python
Python实现简单得递归下降Parser
May 02 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
js里怎么取select标签里的值并修改
2012/12/10 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
详解jquery和vue对比
2019/04/16 jQuery
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python编写Logistic逻辑回归
2020/12/30 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
运动会入场词50字
2014/02/20 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
六个一活动实施方案
2014/03/21 职场文书
2014年党务公开方案
2014/05/08 职场文书
法律专业求职信
2014/05/24 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
销售工作决心书
2015/02/04 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
股东协议书范本2016
2016/03/21 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python