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

python批量連接服務(wù)器檢查容器是否正常

 更新時間:2024年01月12日 11:03:46   作者:碧蓮城??python進階測試  
在生產(chǎn)中,我們可能有很多項目或者很多環(huán)境,可能會部署在幾百上千的服務(wù)器里面,我們該怎么定時去監(jiān)控這些服務(wù)器里面的容器服務(wù)器是否正常呢,本文就來為大家講解

引言

在生產(chǎn)中,我們可能有很多項目或者很多環(huán)境??赡軙渴鹪趲装偕锨У姆?wù)器里面。我們該怎么定時去監(jiān)控這些服務(wù)器里面的容器服務(wù)器是否正常呢?

python監(jiān)控docke容器是否正常運行中

下面我用python寫了一個程序,可以直接去監(jiān)控docke容器是否正常運行中:

# -*- coding: utf-8 -*-
import paramiko   # 導(dǎo)入paramiko 模塊用于,SSH連接
# 定義一個名為server_list的字典,包含多個服務(wù)器的信息
sever_list = {
    '服務(wù)器1': ['192.168.1.1', 'root', '密碼', 19005],
    '服務(wù)器2': ['116.168.10.253', 'root', '9997d9898LdJ', 22]
}
def traceback_methon(n):
    import traceback
    for key, values in sever_list.items():
        server, username, password, port = values  # 使用解構(gòu)將值分別賦給五個變量
        try:
            ssh = paramiko.SSHClient()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(server, username=username, password=password, port=port)  # 用戶名和密碼進行連接
            try:
                stdin, stdout, stderr = ssh.exec_command(
                    'docker ps --filter "status=exited" --filter "status=paused" --filter "status=removing" --filter "status=dead" --format "{{.ID}} {{.Names}} {{.Status}}"')  # 執(zhí)行一個命令
            except paramiko.SSHException:
                print('命令執(zhí)行失?。篠SH協(xié)議異常')
                traceback.print_exc()  # 打印詳細的錯誤信息
                continue
            except Exception:
                print('命令執(zhí)行失?。浩渌惓?)
                traceback.print_exc()  # 打印詳細的錯誤信息
                continue
            for line in stdout:
                if line is not None or line != '':
                    print(str(n) + '、 ' + key + " " + server + " 該容器有問題 " + " >> " + line.strip('\n'))  # 打印輸出結(jié)果
                else:
                    print(str(n) + '、 ' + key + '沒有停止、暫停、遷移、死亡 的容器,')
                n = n + 1
        except paramiko.AuthenticationException:
            print('連接失?。赫J證失敗')
            traceback.print_exc()  # 打印詳細的錯誤信息
            continue
        except paramiko.SSHException:
            print('連接失敗:SSH協(xié)議異常')
            traceback.print_exc()  # 打印詳細的錯誤信息
            continue
        except Exception:
            print('連接失?。浩渌惓?)
            traceback.print_exc()  # 打印詳細的錯誤信息
            continue
paramiko_methon()

上面這段代碼是一個Python腳本,用于通過SSH連接到一組服務(wù)器,并使用Docker命令檢查每個服務(wù)器上是否有已停止、暫停、正在被移除或已死亡的容器。

代碼解析

下面是代碼的詳細解釋:

定義traceback_methon函數(shù)

這個函數(shù)是為了跟蹤和輸出異常信息。它接受一個參數(shù)n。
遍歷服務(wù)器列表:
對于sever_list字典中的每一項,代碼執(zhí)行以下操作:

  • 解構(gòu)賦值:從字典值中提取出IP地址、用戶名、密碼和端口,并分別賦值給server,username,password,port變量。

  • 嘗試建立SSH連接:使用paramiko.SSHClient()創(chuàng)建一個SSH客戶端,并設(shè)置缺少主機密鑰策略為自動添加。然后嘗試使用給定的用戶名和密碼進行連接。

  • 執(zhí)行Docker命令:如果SSH連接成功,代碼將嘗試執(zhí)行一個Docker命令來查找具有特定狀態(tài)的容器。它使用exec_command方法執(zhí)行命令,并捕獲標(biāo)準(zhǔn)輸入、輸出和錯誤輸出。

  • 處理輸出:對于每個服務(wù)器的輸出,檢查是否包含非空行。如果包含非空行,則打印出有關(guān)問題的容器信息;否則,打印出沒有問題的容器信息。同時,遞增n的值。

  • 處理異常:如果在嘗試建立SSH連接或執(zhí)行Docker命令時出現(xiàn)異常,代碼將捕獲異常并打印相應(yīng)的錯誤消息。同時,繼續(xù)處理下一個服務(wù)器。

異常處理

對于不同的異常情況(如認證失敗、SSH協(xié)議異常等),代碼會捕獲它們并打印相應(yīng)的錯誤消息。

讓我們運行上面的程序腳本:

根據(jù)下方的結(jié)果。我們可以很清楚的看到哪個服務(wù)器的容器有問題,輸出了容器ID、容器名稱、容器狀態(tài)。

后續(xù)我們還可以進行對這個 腳本優(yōu)化,可進行持續(xù)集成Jenkins,發(fā)送郵件,發(fā)送釘釘和企業(yè)微信機器人等操作。

以上就是python批量連接服務(wù)器檢查容器是否正常的詳細內(nèi)容,更多關(guān)于python服務(wù)器容器檢查的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PyTorch?Tensor創(chuàng)建實現(xiàn)

    PyTorch?Tensor創(chuàng)建實現(xiàn)

    本文主要介紹了PyTorch?Tensor創(chuàng)建實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Python實現(xiàn)PDF文檔高效轉(zhuǎn)換為HTML文件的完整指南

    Python實現(xiàn)PDF文檔高效轉(zhuǎn)換為HTML文件的完整指南

    在數(shù)字化辦公場景中,PDF因其格式固定、跨平臺兼容性強成為文檔分發(fā)的主流格式,但有時也需要將PDF轉(zhuǎn)換為HTML,下面我們就使用Python實現(xiàn)這一功能吧
    2025-11-11
  • 使用Python操作MySQL的一些基本方法

    使用Python操作MySQL的一些基本方法

    這篇文章主要介紹了使用Python操作MySQL的一些基本方法,Python+MySQL也是服務(wù)器端快速開發(fā)的一種絕佳搭配方案,需要的朋友可以參考下
    2015-08-08
  • 詳解Python變量與注釋高級用法

    詳解Python變量與注釋高級用法

    變量與注釋是表達作者思想的基礎(chǔ),他們對代碼質(zhì)量的貢獻母庸質(zhì)疑,這篇文章主要介紹了Python變量與注釋高級用法,需要的朋友可以參考下
    2022-08-08
  • 基于matlab?atan2函數(shù)解析

    基于matlab?atan2函數(shù)解析

    這篇文章主要介紹了matlab?atan2函數(shù)解析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python數(shù)組拼接np.concatenate實現(xiàn)過程

    Python數(shù)組拼接np.concatenate實現(xiàn)過程

    這篇文章主要介紹了Python數(shù)組拼接np.concatenate實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • python中[,a::b]的使用

    python中[,a::b]的使用

    本文通過實例詳細介紹了Python中如何使用[a::b]語法來對數(shù)組進行切片操作,包括不同步長b對數(shù)組索引的影響,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • Python selenium的這三種等待方式一定要會!

    Python selenium的這三種等待方式一定要會!

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著selenium三種等待方式展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • django manage.py擴展自定義命令方法

    django manage.py擴展自定義命令方法

    今天小編就為大家分享一篇django manage.py擴展自定義命令方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python實現(xiàn)API開發(fā)的詳細教程

    Python實現(xiàn)API開發(fā)的詳細教程

    在現(xiàn)代軟件開發(fā)中,API扮演著至關(guān)重要的角色,API接口用于不同軟件組件之間的通信和數(shù)據(jù)交換,實現(xiàn)了系統(tǒng)之間的互操作性,Python作為一種簡單易用且功能強大的編程語言,廣泛應(yīng)用于API接口的開發(fā),本文將詳細介紹如何使用Python開發(fā)API接口,需要的朋友可以參考下
    2024-12-12

最新評論

巴彦淖尔市| 浦东新区| 开江县| 深圳市| 读书| 柏乡县| 桐庐县| 资溪县| 罗江县| 灵宝市| 漠河县| 崇义县| 五指山市| 比如县| 仁化县| 宁化县| 鹰潭市| 莫力| 泾川县| 科尔| 梧州市| 彭州市| 葫芦岛市| 扎囊县| 德钦县| 丹东市| 渝中区| 兴化市| 光泽县| 吉林市| 临安市| 兴山县| 延寿县| 彭泽县| 永顺县| 海口市| 鸡西市| 垫江县| 礼泉县| 德清县| 凤城市|