-->
当前位置:首页 > DayDayUp > 正文内容

python检测web服务是否正常,并调用金笛短信猫推送异常|python调用短信猫监控服务器|python调用钉钉机器人监控服务器

Luz1个月前 (11-04)DayDayUp389

背景

业务部署在内网,项目运行环境异常时无法及时发送消息到外界。但项目拥有一个短信猫,可以发送短信,编写脚本定时监控业务运行情况,当运行异常时调用短信猫发送短信到指定手机号码。

a3261b291a6148d724ea44ef5151d12.jpg


代码

import requests
import datetime
import time
import os
def checkhttml(url,keyword):
    try:
        resp=requests.get(url,verify=False).text
    ##print(resp)
        if(keyword in resp):
            return 1
        else:
            return 0
    except:
        return 0
def ding_send(message,at):  #如果项目有外网可以使用钉钉机器人
    webhook='https://oapi.dingtalk.com/robot/send?access_token=d61xxxxx'
    data={
    "at": {
        "atDingtalkIds":[
            at
        ],
        "isAtAll": 'false'
    },
    "text": {
        "content":"@"+at+" "+message
    },
    "msgtype":"text"
    }
    print(data)
    print(requests.post(webhook,json=data).text)
def sleepl():
    print("wait 30 seconds for next check")
    time.sleep(30)
def sendsms(phone,device,offlinedate): #本项目没有外网,使用命令行操作JDCheck发送短信
    command="JDCheck.1.22.exe 5 "+str(phone)+" "+"\"[设备离线告警] "+offlinedate[:20]+"IP:"+str(device)+"\""   #JDCheck可以去短信猫官网下载
    r=os.popen(command)
    print(r.read())
    r.close()
def main():
    while(1):
        try:
            current_time = str(datetime.datetime.now())
            deviceIp=['33.157.9.69']
            for ip in deviceIp:
                if(checkhttml('http://'+str(ip),'body')):
                    print(current_time+'   '+ip+'   Device Online')
                    #ding_send(current_time+'  116.148.185.195:81 服务在线','')
                else:
                    print(current_time+'   '+ip+'   Device Offline')
                    sendsms(176xxxxxxxx,ip,current_time)  
            
            sleepl()
        except:
            sleepl()
main()


发送效果

b076d1f0bebac2e3400da947ba326e2.jpg


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。