最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

原理

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

環(huán)境

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

Python版本: 3.6

消息推送服務(wù): tui.juhe.cn

代碼

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

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

# 將預(yù)警消息通過(guò)云推推送
def yuntui_push(content):
    # 當(dāng)前時(shí)間
    push_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    # 云推接口的信息配置,可以通過(guò) https://tui.juhe.cn 自行注冊(cè)創(chuàng)建
    # (可以配置郵件、釘釘機(jī)器人、微信公眾號(hào)等接收方式)
    token = "*****************"
    service_id = "******"
    title = "URL可用性監(jiān)控預(yù)警"
    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("推送結(jié)果:成功 -- %s" % push_time)
        else:
            print("推送結(jié)果:失敗(%s) -- %s" % (push_res['reason'], push_time))
    except requests.exceptions.ConnectTimeout:
        print("推送結(jié)果:超時(shí) -- %s" % push_time)

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

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

pip3 install requests

crontab計(jì)劃任務(wù)配置

命令行輸入crontab -e進(jìn)入計(jì)劃任務(wù)配置

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

查看日志

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

預(yù)警消息效果

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

釘釘群機(jī)器人:

image.png

郵件:

image.png

微信公眾號(hào):

image.png

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 淺析python中的del用法

    淺析python中的del用法

    python中的del用法比較特殊,新手學(xué)習(xí)往往產(chǎn)生誤解,弄清del的用法,可以幫助深入理解python的內(nèi)存方面的問(wèn)題。這篇文章主要介紹了python中的del用法,需要的朋友可以參考下
    2020-09-09
  • python使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能

    python使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能

    gTTS(Google?Text-to-Speech),?這個(gè)庫(kù)是Google的Text-to-Speech?API的一個(gè)接口,提供了一種簡(jiǎn)單的方式來(lái)生成聽起來(lái)自然的語(yǔ)言,下面我們就來(lái)看看如何使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能吧
    2024-03-03
  • Python中的pass語(yǔ)句使用方法講解

    Python中的pass語(yǔ)句使用方法講解

    這篇文章主要介紹了Python中的pass語(yǔ)句使用方法講解,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 五個(gè)有趣的Python整蠱小程序合集

    五個(gè)有趣的Python整蠱小程序合集

    Python 能做很多無(wú)聊,但有意思的事情。本文為大家精心準(zhǔn)備了五個(gè)整蠱朋友的小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴快動(dòng)手試一試
    2022-04-04
  • 如何將python中的List轉(zhuǎn)化成dictionary

    如何將python中的List轉(zhuǎn)化成dictionary

    這篇文章主要介紹在python中如何將list轉(zhuǎn)化成dictionary,通過(guò)提出兩個(gè)問(wèn)題來(lái)告訴大家如何解決,有需要的可以參考借鑒。
    2016-08-08
  • 實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來(lái)運(yùn)行python腳本

    實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來(lái)運(yùn)行python腳本

    這篇文章主要介紹了實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來(lái)運(yùn)行python腳本的完整過(guò)程,有需要的朋友可以借鑒參考下,希望對(duì)廣大讀者朋友能夠有所幫助
    2021-09-09
  • pycharm軟件實(shí)現(xiàn)設(shè)置自動(dòng)保存操作

    pycharm軟件實(shí)現(xiàn)設(shè)置自動(dòng)保存操作

    這篇文章主要介紹了pycharm軟件實(shí)現(xiàn)設(shè)置自動(dòng)保存操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python基礎(chǔ)之while循環(huán)、for循環(huán)詳解及舉例

    python基礎(chǔ)之while循環(huán)、for循環(huán)詳解及舉例

    所謂循環(huán)結(jié)構(gòu)就是程序中控制某條或某些指令重復(fù)執(zhí)行的結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之while循環(huán)、for循環(huán)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • python基于opencv 實(shí)現(xiàn)圖像時(shí)鐘

    python基于opencv 實(shí)現(xiàn)圖像時(shí)鐘

    這篇文章主要介紹了python基于opencv 實(shí)現(xiàn)圖像時(shí)鐘的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • django實(shí)現(xiàn)用戶登陸功能詳解

    django實(shí)現(xiàn)用戶登陸功能詳解

    這篇文章主要介紹了django實(shí)現(xiàn)用戶登陸功能詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論

江川县| 滨海县| 宜良县| 旌德县| 望都县| 大厂| 七台河市| 宜宾县| 宜川县| 绥江县| 淅川县| 民县| 通河县| 闵行区| 尼木县| 沅江市| 北海市| 五寨县| 大安市| 远安县| 安西县| 徐州市| 进贤县| 临夏县| 贡山| 宁波市| 济宁市| 四川省| 井陉县| 明溪县| 潢川县| 西青区| 二连浩特市| 宁都县| 德州市| 安泽县| 吉隆县| 忻城县| 和平县| 本溪| 建水县|