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 的字典(Dict)是如何存储的

    Python的字典是一种散列表的实现,它是一个无序的键值对集合,其中可以添加和删除键值对,字典中的键必须唯一且必须是不可变类型(如字符串、元组、数字等),值可以是任何类型,包括列表和其他字典。字典是Python的核心数据类型之一,在实际开发中经常使用。 字典的内部实现 字典的底层是由一个散列表(哈希表)实现的。散列表是一种根据键值直接访问内存位置的数据结构,…

    python 2023年5月13日
    00
  • Python创建自己的加密货币的示例

    Python创建自己的加密货币可以分为以下步骤: 1.确定加密货币的名称和简写 加密货币的名称一般由2-5个单词组成,简写通常为3-5个字母。在确定名称和简写时,需要确保在加密货币市场上不存在重名的现象。假设我们的加密货币命名为“AuroraCoin”,简写为“AU”。 2.建立区块链 区块链是加密货币的基础,是由许多区块连接成的链式结构。每个区块都包含一定…

    python 2023年6月2日
    00
  • python中defaultdict字典功能特性介绍

    下面是关于”python中defaultdict字典功能特性介绍”的完整攻略: 什么是defaultdict? defaultdict是Python标准库collections模块中的一种字典类型,它是字典类(dict)的一个子类,用于指定字典中如果没有相应的key时的默认返回值。 defaultdict的特殊之处在于,如果在字典中查找一个不存在的key时,…

    python 2023年5月13日
    00
  • Python数据可视化 pyecharts实现各种统计图表过程详解

    Python数据可视化pyecharts实现各种统计图表过程详解 数据可视化是数据分析中非常重要的一部分,它可以帮助我们更好地理解和分析数据。Python提供了一些强大的数据可视化工具,其中pyecharts是一个非常流行的工具,它可以帮助我们轻松地创建各种统计图表。本文将详细讲解如何使用pyecharts实现各种统计图表。 安装pyecharts 在使用p…

    python 2023年5月15日
    00
  • python返回数组的索引实例

    下面我将为您详细讲解“python返回数组的索引实例”的完整攻略。 什么是数组索引? 在Python中,数组索引是指可以使用整数来访问数组中特定元素的位置或地址。例如,在一个包含10个元素的数组中,如果要访问第5个元素,则需要使用数组索引为4。 Python如何返回数组的索引? Python中可以使用以下方法返回数组的索引: 方法1:使用index()函数 …

    python 2023年6月5日
    00
  • 用python实现一个文件搜索工具

    绝大多数操作系统的文件系统都有一个通用搜索功能,但是有时我们需要高度自定义的搜索功能,这时可以用Python编写一个文件搜索工具。 1. 问题分析 无论是什么样的搜索工具,其实现的基本步骤大致相同: 搜寻起点 搜寻过滤规则 搜寻输出 这些步骤中, 发现一个文件搜索工具的最基本要求就是依据用户的输入对文件进行搜寻。也就是说我们需要输入:搜寻路径、搜寻关键词。我…

    python 2023年6月2日
    00
  • 通过selenium抓取某东的TT购买记录并分析趋势过程解析

    下面详细讲解“通过selenium抓取某东的TT购买记录并分析趋势过程解析”的完整攻略。 准备工作 在开始之前,需要做一些准备工作: 安装 Python 环境和 Selenium 库; 安装 Chrome 浏览器和对应的 Chrome Driver 驱动; 登录某东账号,并打开 TT 购买记录页面,获取该页面的网址。 完成上述准备工作之后,便可以开始抓取和分…

    python 2023年6月6日
    00
  • Python常用内置函数总结

    Python常用内置函数总结 Python提供了大量的内置函数,这些函数可以帮助我们完成各种任务。下面是一些常用的Python内置函数: 1. print() print()函数是向控制台输出消息的常用方法。它通常用于调试代码或输出信息给用户。 以下是一个示例: name = "Tom" print("Hello,",…

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