前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0基础上手python编程,实践进程+URL守护程序+企业微信机器人告警

0基础上手python编程,实践进程+URL守护程序+企业微信机器人告警

作者头像
王忘杰
发布2023-08-21 19:39:01
1890
发布2023-08-21 19:39:01
举报
文章被收录于专栏:王忘杰的小屋

全民制作人大家好,我是学习python两天半的练习生王忘杰,喜欢路由交换、linux、网络安全,开整!这是我的第三篇0基础python文章,请大家支持,谢谢~

开发思路 用于监控指定的URL或进程,在我的场景中,使用了httpprinter打印机插件,这个程序提供了http接口的打印功能,当程序死机时,http接口无法连接,则需要重启程序 设计思路很简单,访问失败发送告警并重启程序即可。

绘制开发流程图

使用python语言实现

代码语言:javascript
复制
import os,requests,win32api,json,psutil

def process_check(processname):
    #检查进程是否存在,存在返回1
    pl = psutil.pids()
    for pid in pl:
        if psutil.Process(pid).name() == processname:
            return 1
    else:
        return 0

def url_check(url):
    #检查URL
    try:
        r = requests.get(url, timeout=3, verify=False)
        if r.status_code == 200:
            print("运行中,无异常")
        else:
            msg = "http打印程序状态异常,重启程序"
            yun_push(msg)
            # 关闭程序
            os.system("taskkill /F /IM HttpPrinter.exe")
            # 启动程序
            win32api.ShellExecute(0,'open','C:\\HttpPrinter_latest\\HttpPrinter.exe','','',1)
    except:
        msg = "http打印程序状态异常,重启程序"
        yun_push(msg)
        # 关闭程序
        os.system("taskkill /f /im HttpPrinter.exe")
        # 启动程序
        win32api.ShellExecute(0,'open','C:\\HttpPrinter_latest\\HttpPrinter.exe','','',1)

def yun_push(content):
    #企业微信推送
    url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=用自己的'
    s = json.dumps({'msgtype': 'text', 'text': {"content": content}})
    print(requests.post(url, data=s).text)


if __name__ == '__main__':
    #检查进程是否存在
    #if(process_check("HttpPrinter.exe"))

    #检查URL
    url_check("http://10.0.0.1:1234/")

编译成EXE程序 pyinstaller -F -w .\main.py

部署windows计划任务

运行效果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王忘杰的小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档