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

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

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

易采站长站,站长之家为您整理了python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警的相关内容。

使用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使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警的详细介绍。欢迎大家对python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警内容提出宝贵意见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值