欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python實現(xiàn)URL監(jiān)測與即時推送

 更新時間:2021年11月17日 08:42:24   作者:董式小爬蟲  
這篇文章主要為大家介紹了Python實現(xiàn)URL監(jiān)測與即時推送,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

原理

采用Python requests發(fā)起請求監(jiān)測的URL,檢測Http響應狀態(tài)及是否超時,如果Http狀態(tài)異常或響應超時,則通過聚合云推的消息推送API將預警消息發(fā)送至郵箱、釘釘機器人、企業(yè)微信機器人、微信公眾號等,服務端通過crontab定時(每分鐘)執(zhí)行代碼,實現(xiàn)動態(tài)監(jiān)測功能。

環(huán)境

操作系統(tǒng): CentOS 7.x

Python版本: 3.6

消息推送服務: tui.juhe.cn

代碼

#!/usr/bin/python3
import requests
import time
import json

# 監(jiān)測URL是否正常響應
def url_check(url):
    # 當前時間
    check_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    print("開始監(jiān)測:%s -- %s" % (url, check_time))
    try:
        # 請求URL, 設置3s超時
        r = requests.get(url, timeout=3)
        if r.status_code != 200:
            # 請求響應狀態(tài)異常
            msg = "監(jiān)控的URL:%s%sHttp狀態(tài)異常:%s%s監(jiān)測時間:%s" % (url, "\n\n", r.status_code, "\n\n", check_time)
            print("監(jiān)測結果:異常(Http狀態(tài)異常:%s) -- %s" % (r.status_code, check_time))
            # 通過云推推送消息
            yuntui_push(msg)
        else:
            # 請求響應正常
            print("監(jiān)測結果:正常 -- %s" % check_time)
    except requests.exceptions.ConnectTimeout:
        # 請求響應超時
        msg = "監(jiān)控的URL:%s%s請求異常:%s%s監(jiān)測時間:%s" % (url, "\n\n", "請求超時", "\n\n", check_time)
        print("監(jiān)測結果:超時 -- %s" % check_time)
        # 通過云推推送消息
        yuntui_push(msg)

# 將預警消息通過云推推送
def yuntui_push(content):
    # 當前時間
    push_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    # 云推接口的信息配置,可以通過 https://tui.juhe.cn 自行注冊創(chuàng)建
    # (可以配置郵件、釘釘機器人、微信公眾號等接收方式)
    token = "*****************"
    service_id = "******"
    title = "URL可用性監(jiān)控預警"
    doc_type = "markdown"
    body = {"token": token, "service_id": service_id, "title": title, "content": content, "doc_type": doc_type}
    try:
        r = requests.post("https://tui.juhe.cn/api/plus/pushApi", data=body, timeout=15)
        push_res = json.loads(r.content)
        code = push_res['code']
        if code == 200:
            print("推送結果:成功 -- %s" % push_time)
        else:
            print("推送結果:失?。?s) -- %s" % (push_res['reason'], push_time))
    except requests.exceptions.ConnectTimeout:
        print("推送結果:超時 -- %s" % push_time)

# 執(zhí)行URL可用性監(jiān)測
if __name__ == '__main__':
    # 監(jiān)控URL可用性
    # url_check("https://www.test.com")
    url_check("https://www.baidu.com/")

如果requests未安裝可以執(zhí)行以下命令安裝

pip3 install requests

crontab計劃任務配置

命令行輸入crontab -e進入計劃任務配置

# 每分鐘執(zhí)行一次
*/1 * * * * /usr/bin/python3 /data/check_url/main.py >> /data/log.txt

查看日志

cat /data/log.txt
開始監(jiān)測:https://www.baidu.com/ -- 2021-11-16 15:04:01
監(jiān)測結果:正常 -- 2021-11-16 15:04:01
開始監(jiān)測:https://www.baidu.com/ -- 2021-11-16 15:05:02
監(jiān)測結果:正常 -- 2021-11-16 15:05:02
開始監(jiān)測:https://www.baidu.com/ -- 2021-11-16 15:06:01
監(jiān)測結果:正常 -- 2021-11-16 15:06:01
開始監(jiān)測:https://www.baidu.com/ -- 2021-11-16 15:07:01
監(jiān)測結果:正常 -- 2021-11-16 15:07:01
開始監(jiān)測:https://www.baidu.com/ -- 2021-11-16 15:08:01
監(jiān)測結果:正常 -- 2021-11-16 15:08:01
開始監(jiān)測:https://www.test.com -- 2021-11-16 15:11:01
監(jiān)測結果:超時 -- 2021-11-16 15:11:01
推送結果:成功 -- 2021-11-16 15:11:04
開始監(jiān)測:https://www.test.com -- 2021-11-16 15:12:01
監(jiān)測結果:超時 -- 2021-11-16 15:12:01
推送結果:成功 -- 2021-11-16 15:12:04

預警消息效果

如果監(jiān)測到異常結果,你在云推配置的接收終端將會收到通知,類似如下:

釘釘群機器人:

image.png

郵件:

image.png

微信公眾號:

image.png

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • python處理SQLite數(shù)據庫的方法

    python處理SQLite數(shù)據庫的方法

    這篇文章主要介紹了python處理SQLite數(shù)據庫的方法,python處理數(shù)據庫非常簡單。而且不同類型的數(shù)據庫處理邏輯方式大同小異。本文以sqlite數(shù)據庫為例,介紹一下python操作數(shù)據庫的方,需要的朋友可以參考下,希望能幫助到大家
    2022-02-02
  • pandas apply多線程實現(xiàn)代碼

    pandas apply多線程實現(xiàn)代碼

    這篇文章主要介紹了pandas apply多線程實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • pycharm全局修改方式

    pycharm全局修改方式

    這篇文章主要介紹了pycharm全局修改方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • python3中TQDM庫安裝及使用詳解

    python3中TQDM庫安裝及使用詳解

    在本篇內容里小編給大家整理了關于python3中TQDM庫安裝及使用的相關知識點,有興趣的朋友們可以學習下。
    2020-11-11
  • Python制作微信機器人教程詳解

    Python制作微信機器人教程詳解

    這篇文章主要介紹了Python如何實現(xiàn)微信機器人,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-12-12
  • 詳解Python 正則表達式模塊

    詳解Python 正則表達式模塊

    這篇文章主要介紹了Python 正則表達式模塊詳解,分為兩部分,包括基礎語法總結,re模塊的相關知識,需要的朋友可以參考下
    2018-11-11
  • Python淺復制中對象生存周期實例分析

    Python淺復制中對象生存周期實例分析

    這篇文章主要介紹了Python淺復制中對象生存周期,結合實例形式分析了Python面向對象中的淺復制操作時對象的生命周期問題,需要的朋友可以參考下
    2018-04-04
  • python 網絡編程常用代碼段

    python 網絡編程常用代碼段

    這篇文章主要介紹了python 網絡編程常用代碼段,需要的朋友可以參考下
    2016-08-08
  • python實現(xiàn)隨機森林random forest的原理及方法

    python實現(xiàn)隨機森林random forest的原理及方法

    本篇文章主要介紹了python實現(xiàn)隨機森林random forest的原理及方法,詳細的介紹了隨機森林的原理和python實現(xiàn),非常具有參考價值,有興趣的可以了解一下
    2017-12-12
  • 聊聊Python代碼中if?__name__?==?‘__main__‘的作用是什么

    聊聊Python代碼中if?__name__?==?‘__main__‘的作用是什么

    一個python文件通常有兩種使用方法,第一是作為腳本直接執(zhí)行,第二是 import 到其他的python腳本中被調用執(zhí)行,這篇文章主要給大家介紹了關于Python代碼中if?__name__?==?‘__main__‘的作用是什么的相關資料,需要的朋友可以參考下
    2022-03-03

最新評論