淮安品牌网站建设,长春网站建设q479185700強,机电工程栏建设项目网站建设,平邑网站开发发邮件之Windows进程监控 文章目录 发邮件之Windows进程监控前言一、基本内容二、基本结构三、库模块四、函数模块1.进程监控2.邮件发送 五、程序运行模块1.获取时间2.用户输入3.进程监控3.1进程启动发邮件3.2进程停止发邮件 总结 前言
上一篇简单写了一下如何进行邮件的收发操…发邮件之Windows进程监控 文章目录 发邮件之Windows进程监控前言一、基本内容二、基本结构三、库模块四、函数模块1.进程监控2.邮件发送 五、程序运行模块1.获取时间2.用户输入3.进程监控3.1进程启动发邮件3.2进程停止发邮件 总结 前言
上一篇简单写了一下如何进行邮件的收发操作。那么这篇在此基础上呢添加了一些触发条件让程序替我们监控一些东西有问题了就发邮件给我们。 一、基本内容
监控Windows系统中的某个进程共两种模式一是程序进程启动触发发邮件操作二是程序进程停止触发发邮件操作。同时邮件中会写明什么时间《日期格式 2023-02-11 06:45:21》什么程序启动还是停止。
这个是我测试的效果图。 二、基本结构
本程序主要分为三大部分 库模块 函数模块 进程监控邮件发送程序运行模块 获取日期用户输入程序判断三、库模块 代码如下 # 用来做程序进程的监控
import psutil# 用来记录当前时间
import time# 用来发送邮件
import smtplib# 用来编写邮件正文内容
from email.mime.text import MIMEText每个库的作用已经注释出来了记得看注释。 四、函数模块
1.进程监控 代码如下 def is_process_running():for proc in psutil.process_iter():if proc.name() target_process:return Truereturn False此处是监测用户输入的进程是否在运行。是则返回True否则返回False。 后面会用这两个布尔值做判断。 2.邮件发送 代码如下 def send_mail():# 创建邮件对象msg[Subject] Test Message # 这个是邮件的标题msg[From] xxxxxxxxx163.commsg[To] xxxxxxxxxxxqq.com# 设置服务器的地址和端口smtpobj smtplib.SMTP_SSL(smtp.163.com, 465)# 向邮件服务器打招呼这很重要smtpobj.ehlo()# 登录到smtp服务器smtpobj.login(xxxxxxxxx163.com, LSxxxxxxxxx)# 发送邮件smtpobj.sendmail(msg[From], [msg[To]], msg.as_string())# 从smtp服务器断开smtpobj.quit()记得看代码注释哦。要是还是有点不懂点击这个链接《Python 自动化之收发邮件一》https://blog.csdn.net/weixin_57061292/article/details/134983850
注意msg[‘Subject’] ‘Test Message’ 这个是设置邮件的标题的代码。 五、程序运行模块
1.获取时间 代码如下 if __name__ __main__:# 获得当前时间时间戳后转化为本地时间timeStruct time.localtime(int(time.time()))# 日期格式 2023-02-11 06:45:21strTime time.strftime(%Y-%m-%d %H:%M:%S, timeStruct)第一步是获取时间。第二步是把时间转换成用户想要的格式。 if name ‘main’: 这个的作用是当这个python文件中的函数被别的文件导入使用时候程序运行模块不会运行。
后续代码都会在这个下面写。 2.用户输入 代码如下 # 要监控的进程的名称print(please input the process(例子notepad.exe) , end)target_process input()# 选择监控模式print(please choose 1 程序运行发邮件 2 程序停止发邮件 , end)choice int(input())用户需要输入监控的进程的名称比如notepad.exe。然后选择如何进行监控。 3.进程监控
3.1进程启动发邮件 代码如下 if choice 1:# 设置邮件正文内容msg MIMEText(fAt {strTime}, the process of {target_process} has been started.)while True:is_running is_process_running()# 如果函数的进程监控模块返回Trueif is_running:send_mail()else:print(Process is not running)# 每隔一段时间检查一次例如每5秒time.sleep(10)首先设置要发送的邮件正文的内容。然后搞一个while循环一直检测。 需要注意的是要设置时间间隔监测要不然会很吃资源。 3.2进程停止发邮件 代码如下 elif choice 2:# 设置邮件正文内容msg MIMEText(fAt {strTime}, the process of {target_process} has been stop.)while True:is_running is_process_running()# 如果函数的进程监控模块返回Falseif not is_running:send_mail()else:print(Process is running)# 每隔一段时间检查一次例如每5秒time.sleep(10)跟 《3.1进程启动发邮件》 几乎一样只是判断进程监控函数模块的返回值不同。 总结
看完之后是不是觉得很简单呀不过如此哈哈哈哈哈哈 这个东西其实也是自动化运维中很重要的一样东西其中的原理跟我写的这个估计也大差不差的。