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

Python使用Windows的wmic命令监控文件运行状况并发送邮件报警,可以分为以下几个步骤:

  1. 安装依赖包:安装pypiwin32psutil两个Python库,分别用于操作Windows的WMI命令和获取Python进程信息。可使用以下命令安装:

pip install pypiwin32 psutil

  1. 配置邮件:使用Python内置的smtplibemail库,进行邮件发送配置。具体实现方式可以参考我的博客文章Python实现SMTP发送邮件教程

  2. 监控文件运行状况,并判断是否存在异常:使用wmic命令获取指定文件的进程信息,使用psutil判断进程情况并记录进程PID。若该文件的进程不在运行状态,则说明存在异常;反之,则无异常。

示例一:监控notepad.exe进程,判断该进程是否在运行状态。代码如下:

```python
import subprocess
import psutil

filename = 'notepad.exe' # 需要监控的文件名

# 使用wmic命令获取文件进程信息
cmd = f'wmic process where name="{filename}" get commandline,processid'
result = subprocess.check_output(cmd, shell=True).decode('gbk').strip().split('\n')[1:]

# 存储所有进程PID
all_pid = []
for item in result:
# 解析命令行参数和进程ID
cmd, pid = item.strip().split(maxsplit=1)
pid = int(pid)

   # 判断文件进程是否在运行状态
   if filename.lower() in cmd.lower() and psutil.pid_exists(pid):
       # 保存进程PID
       all_pid.append(pid)

if not all_pid:
print(f"{filename}进程异常")
else:
print(f"{filename}进程正常,其PID为{all_pid}")
```

示例二:监控数据库mysql server进程运行状态。代码如下:

```python
import subprocess
import psutil

filename = 'mysqld.exe' # 需要监控的文件名

# 使用wmic命令获取文件进程信息
cmd = f'wmic process where name="{filename}" get commandline,processid'
result = subprocess.check_output(cmd, shell=True).decode('gbk').strip().split('\n')[1:]

# 存储所有进程PID
all_pid = []
for item in result:
# 解析命令行参数和进程ID
cmd, pid = item.strip().split(maxsplit=1)
pid = int(pid)

   # 判断文件进程是否在运行状态
   if 'mysql' in cmd.lower() and psutil.pid_exists(pid):
       # 保存进程PID
       all_pid.append(pid)

if not all_pid:
print(f"{filename}进程异常")
else:
print(f"{filename}进程正常,其PID为{all_pid}")
```

  1. 发送邮件报警:若存在异常,则发送邮件报警。具体实现方式可以参考我的博客文章Python实现SMTP发送邮件教程

将以上步骤整合起来,得到完整代码如下:

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 基于python的mysql复制工具详解

    我将为您提供一份“基于python的mysql复制工具详解”的完整实例教程。 标题 什么是MySQL复制? MySQL复制是指将整个数据库或部分数据库从一个MySQL服务器复制到另一个MySQL服务器的过程。MySQL复制可用于实现高可用性和灾备恢复等操作。 MySQL复制有哪些组件? MySQL复制涉及两个或更多MySQL服务器的通信,主要有以下三个组件:…

    python 2023年5月13日
    00
  • Python模拟登录网易云音乐并自动签到

    下面是Python模拟登录网易云音乐并自动签到的攻略: 步骤一:分析登录过程 我们首先需要分析网易云音乐的登录过程,以便用Python进行模拟登录。打开网易云音乐官网,随便点击一首歌曲,然后点击登录按钮,在弹出的登录框中填写手机号和密码,点击登录后,打开开发者工具(Chrome按F12),找到Network选项卡,再次点击登录按钮,可以看到在Network面…

    python 2023年6月3日
    00
  • Python利用sched模块实现定时任务

    Python的sched模块提供了一个定时器功能,可用于创建定期执行的任务。下面是使用sched模块实现的基本任务调度流程: 1.首先,导入sched模块 import sched 2.初始化scheduler对象 s = sched.scheduler(timefunc=time.time, delayfunc=time.sleep) 3.编写需要定时执行…

    python 2023年6月2日
    00
  • 一文教会你用Python实现pdf转word

    一文教会你用Python实现pdf转word 最近,有很多人在学习Python这门语言,使用Python可以实现很多有趣的功能,其中一项就是pdf转word。对于需要频繁将pdf转换为word文档的工作者,这是一个非常有用的功能。在本文中,我将教大家如何使用Python实现pdf转word的功能。 第一步:安装必要的库 要使用Python实现pdf转word…

    python 2023年6月5日
    00
  • Python统计列表中的重复项出现的次数的方法

    我来为您提供Python统计列表中重复项出现次数的方法攻略。 方法一:使用Python内置的Counter函数 使用Python的collections库中内置的Counter函数来完成统计操作。Counter函数可以将一个可迭代对象的各项元素出现次数统计出来,返回一个字典,字典键是元素,字典值是元素出现的次数。 示例代码: from collections…

    python 2023年6月3日
    00
  • python刷投票的脚本实现代码

    下面我来详细讲解如何实现 Python 刷投票的脚本。 思路 Python 刷票脚本实现的关键是如何模拟用户操作,以达到刷票的效果。一般来说,我们需要模拟以下操作: 打开投票页面; 解析投票页面中的元素,找到投票按钮并点击; 循环执行第 2 步,以达到刷票的效果。 需要注意的是,在实现刷票脚本的过程中,我们必须要遵守网站的法律法规,不能使用该脚本非法获取投票…

    python 2023年6月3日
    00
  • Python操作串口的方法

    操作串口是Python中常见的应用场景之一。Python可以通过第三方库PySerial来实现串口的读写,处理等控制。具体流程分为:1.安装PySerial;2. 打开串口;3. 读写数据;4. 关闭串口。 一、安装PySerial 我们可以使用pip来安装PySerial,这是 Python 的包管理工具,可以在命令行下使用。在终端中输入以下命令: pip…

    python 2023年6月3日
    00
  • 我就是这样学习Python中的列表

    当你学习Python的时候,你会发现列表是一个非常常用的数据类型。列表是一个有序的、可变的集合,其中可以包含任何类型的元素,例如数字、字符串、布尔值、函数或其他列表等。 本文将介绍学习Python中列表的完整攻略,包含以下内容: 1. 列表的创建及基本操作 Python列表可以使用中括号 [] 来创建,其中可以包含任何类型的元素。以下是一些基本的列表操作: …

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部