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

Python和Shell腳本實現(xiàn)輕量級監(jiān)控接口

 更新時間:2025年08月18日 09:40:33   作者:網(wǎng)羅開發(fā)  
這篇文章主要介紹了如何通過 Python 和 Shell 腳本快速實現(xiàn)接口監(jiān)控,自動讀取接口列表,批量檢測接口返回狀態(tài)和耗時,并最終生成一份清晰的可視化報告,希望對大家有所幫助

在日常運維和開發(fā)工作中,我們經(jīng)常會遇到這樣一個問題:系統(tǒng)上線之后,需要驗證幾十甚至上百個接口是否都能正常訪問。手動一個一個去點、去測,不僅效率低,而且容易漏掉關(guān)鍵接口。特別是在微服務架構(gòu)下,接口數(shù)量龐大,接口的健康狀況直接決定了服務是否穩(wěn)定。

本文將介紹如何通過 Python 和 Shell 腳本快速實現(xiàn)接口監(jiān)控,自動讀取接口列表,批量檢測接口返回狀態(tài)和耗時,并最終生成一份清晰的可視化報告(支持 Markdown 或 HTML 格式)。這樣你就能在最短時間內(nèi)確認接口是否健康,而不是盯著瀏覽器或 Postman 一次次重復操作。

引言

隨著微服務、API 網(wǎng)關(guān)、容器化部署的普及,一個完整的應用系統(tǒng)可能依賴幾十個甚至上百個 REST API 接口。每次上線之后,團隊都要花費時間確認接口是否正常響應,尤其是在跨環(huán)境(開發(fā)、測試、生產(chǎn))部署時,這種驗證工作不可或缺。
傳統(tǒng)做法是開發(fā)手工用瀏覽器打開、用 Postman 點接口,或者通過 curl 一條條執(zhí)行。這種方式效率很低,而且不可持續(xù)。理想的方式應該是:

  • 批量讀取接口地址
  • 自動檢測接口是否存活、返回碼和響應時間
  • 把結(jié)果生成報告,一目了然

接下來,我們就來一步步構(gòu)建一個這樣的輕量化解決方案。

用 Python 快速實現(xiàn)接口監(jiān)控

讀取接口列表

通常我們會把接口集中放在一個文本文件里,比如 urls.txt

https://api.example.com/health
https://api.example.com/v1/user
https://api.example.com/v1/order

每一行代表一個待檢測的接口。

核心腳本實現(xiàn)

下面的 Python 腳本使用 requests 來檢測接口,記錄返回的狀態(tài)碼和耗時,并把結(jié)果寫入一個 Markdown 報告文件。

import requests
import time
from datetime import datetime

def check_url(url):
    try:
        start = time.time()
        response = requests.get(url, timeout=5)
        duration = round((time.time() - start) * 1000, 2)  # 毫秒
        return response.status_code, duration
    except Exception as e:
        return None, None

def main():
    # 讀取接口列表
    with open("urls.txt", "r") as f:
        urls = [line.strip() for line in f if line.strip()]

    # 生成報告文件
    report_name = f"report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.md"
    with open(report_name, "w") as report:
        report.write("| URL | Status | Response Time (ms) |\n")
        report.write("| --- | ------ | ------------------ |\n")
        for url in urls:
            status, duration = check_url(url)
            if status:
                report.write(f"| {url} | {status} | {duration} |\n")
            else:
                report.write(f"| {url} | Error | - |\n")
    print(f"接口檢測完成,結(jié)果保存在 {report_name}")

if __name__ == "__main__":
    main()

代碼解析

  • check_url:負責單個接口檢測,返回狀態(tài)碼和耗時。
  • urls.txt:統(tǒng)一管理所有待檢測接口。
  • report_xxx.md:自動生成 Markdown 格式的檢測結(jié)果,方便閱讀或上傳到 GitLab/GitHub。

示例輸出

| URL | Status | Response Time (ms) |
| --- | ------ | ------------------ |
| https://api.example.com/health | 200 | 120.35 |
| https://api.example.com/v1/user | 200 | 220.11 |
| https://api.example.com/v1/order | Error | - |

用 Shell 腳本實現(xiàn)極簡版本

有些時候,Python 環(huán)境不方便直接部署,這時可以用一個簡單的 Shell 腳本加 curl 來實現(xiàn):

#!/bin/bash

input="urls.txt"
output="report_$(date +%Y%m%d_%H%M%S).md"

echo "| URL | Status | Time (ms) |" > $output
echo "| --- | ------ | --------- |" >> $output

while IFS= read -r url
do
    if [ -n "$url" ]; then
        start=$(date +%s%3N)
        status=$(curl -o /dev/null -s -w "%{http_code}" "$url")
        end=$(date +%s%3N)
        duration=$((end-start))
        
        if [ "$status" -eq 200 ]; then
            echo "| $url | $status | $duration |" >> $output
        else
            echo "| $url | $status | $duration |" >> $output
        fi
    fi
done < "$input"

echo "接口檢測完成,結(jié)果保存在 $output"

核心邏輯

  • curl 獲取接口響應狀態(tài)碼。
  • 計算時間差作為響應時長。
  • 輸出 Markdown 格式結(jié)果。

應用場景舉例

場景一:服務上線前的批量驗證

開發(fā)完成后要上線新版本,可以先在測試環(huán)境跑一遍檢測腳本,確保所有接口返回 200,再推進到生產(chǎn)。

示例:

python check_api.py

得到報告后,可以快速交給 QA 或運維確認。

場景二:定時健康檢查

通過 cron 或 CI/CD 配合腳本定時執(zhí)行,把接口狀態(tài)報告每天生成一次。

這樣可以快速發(fā)現(xiàn)某個接口掛掉的情況,而不是等用戶反饋。

示例 crontab -e 配置:

0 * * * * python /home/user/check_api.py

表示每小時執(zhí)行一次。

場景三:上線后灰度驗證

在灰度發(fā)布過程中,可以只把部分接口地址放進 urls_gray.txt,運行檢測腳本,快速確認新版本健康。

QA 環(huán)節(jié)

Q1:能不能直接生成 HTML 報告?

可以。把 Markdown 轉(zhuǎn)換成 HTML 非常容易,Python 中可以用 markdown 庫,或者直接輸出 HTML 表格。

Q2:如果接口需要鑒權(quán)怎么辦?

可以在 requests.get()curl 中加上 Header,比如帶上 Token。

Q3:能不能同時檢測并發(fā)請求?

完全可以,用 Python 的 concurrent.futures 或者 asyncio 實現(xiàn)異步檢測,可以大幅度提升檢測速度。

總結(jié)

本文展示了如何用 Python 和 Shell 腳本快速實現(xiàn)一套接口監(jiān)控方案,解決了部署后需要手動逐一驗證接口的問題。方案的關(guān)鍵點在于:

  • 接口集中管理,批量檢測。
  • 檢測結(jié)果可視化(Markdown/HTML)。
  • 可結(jié)合 CI/CD 或定時任務,實現(xiàn)自動化。

這種方案非常適合微服務架構(gòu)下的日常運維,既輕量又實用,不需要額外引入復雜的監(jiān)控平臺,就能在第一時間發(fā)現(xiàn)接口問題。

到此這篇關(guān)于Python和Shell腳本實現(xiàn)輕量級監(jiān)控接口的文章就介紹到這了,更多相關(guān)Python監(jiān)控接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python開發(fā)一個班級互動小程序

    基于Python開發(fā)一個班級互動小程序

    這篇文章主要為大家詳細介紹了一個基于Python和Tkinter開發(fā)的班級互動小程序,通過點擊按鈕隨機生成趣味懲罰任務,下面我們就來看看具體實現(xiàn)代碼吧
    2025-09-09
  • 淺析PHP與Python進行數(shù)據(jù)交互

    淺析PHP與Python進行數(shù)據(jù)交互

    本篇文章給大家分享了PHP與Python進行數(shù)據(jù)交互的詳細方法以及重點點撥,有興趣的朋友可以學習下。
    2018-05-05
  • 如何用Python Beautiful?Soup解析HTML內(nèi)容

    如何用Python Beautiful?Soup解析HTML內(nèi)容

    Beautiful Soup是一種Python的解析庫,主要用于解析和處理HTML/XML內(nèi)容,詳細介紹Beautiful Soup的使用方式和應用場景,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Python裝飾器知識點補充

    Python裝飾器知識點補充

    本篇文章給大家補充了關(guān)于Python裝飾器的相關(guān)知識點內(nèi)容,大家可以跟著學習參考下。
    2018-05-05
  • Python的getattr函數(shù)方法學習使用示例

    Python的getattr函數(shù)方法學習使用示例

    這篇文章主要為大家介紹了Python的getattr方法學習使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • python 將列表中的字符串連接成一個長路徑的方法

    python 將列表中的字符串連接成一個長路徑的方法

    今天小編就為大家分享一篇python 將列表中的字符串連接成一個長路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Pytest執(zhí)行unittest TestSuite(測試套件)的實現(xiàn)方法

    Pytest執(zhí)行unittest TestSuite(測試套件)的實現(xiàn)方法

    TestSuite一直是unittest的靈活與精髓之處,在繁多的測試用例中,可以任意挑選和組合各種用例集,這篇文章主要介紹了Pytest執(zhí)行unittest TestSuite(測試套件)的實現(xiàn)方法,需要的朋友可以參考下
    2021-08-08
  • python3實現(xiàn)磁盤空間監(jiān)控

    python3實現(xiàn)磁盤空間監(jiān)控

    這篇文章主要為大家詳細介紹了python3實現(xiàn)磁盤空間監(jiān)控,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python實現(xiàn)備份文件實例

    Python實現(xiàn)備份文件實例

    這篇文章主要介紹了Python實現(xiàn)備份文件的方法,可實現(xiàn)針對各類常見擴展名的文件進行備份的功能,需要的朋友可以參考下
    2014-09-09
  • 使用Python構(gòu)建MCP服務器的詳細配置步驟

    使用Python構(gòu)建MCP服務器的詳細配置步驟

    模型控制協(xié)議(MCP)是一種專為實現(xiàn)AI代理與工具解耦而設計的通信協(xié)議,為AI驅(qū)動應用程序的開發(fā)提供了高度的靈活性和模塊化架構(gòu),本文將詳細介紹MCP服務器的構(gòu)建過程,包括工具函數(shù)的注冊、配置以及與Claude Desktop等AI代理的集成,需要的朋友可以參考下
    2025-06-06

最新評論

桐乡市| 新和县| 巴林左旗| 景泰县| 新兴县| 呼图壁县| 余庆县| 尚义县| SHOW| 东至县| 临猗县| 澄迈县| 仙桃市| 合水县| 西乡县| 电白县| 瓮安县| 苗栗市| 乐亭县| 抚州市| 金堂县| 宁蒗| 景宁| 太湖县| 南丰县| 静乐县| 黄冈市| 鄂托克旗| 广汉市| 临江市| 富蕴县| 松阳县| 丹江口市| 大宁县| 蒙城县| 历史| 昌乐县| 竹溪县| 游戏| 海原县| 精河县|