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

Python實現(xiàn)的檢測web服務(wù)器健康狀況的小程序

 更新時間:2014年09月17日 12:09:42   作者:鄉(xiāng)村運維  
這篇文章主要介紹了Python實現(xiàn)的檢測web服務(wù)器健康狀況的小程序,本文使用socket庫來實現(xiàn),需要的朋友可以參考下

對web服務(wù)器做健康檢查,一般我們都是用curl庫(不管是php,perl的還是shell的),大致的方法一致:

復(fù)制代碼 代碼如下:

curl -I -s www.qq.com  |head -1|awk '{ health = $2=="200"?"server is ok":"server is bad"}END{print health}'
server is ok

說白了這些方式都是封裝了curl庫的,另外還有一些關(guān)于http的模塊,例如perl的LWP,python的httplib,urllib或者urllib2 也可以去實現(xiàn),今天就走的比較低級一些,就使用socket方式來進行一次檢測:

#!/usr/bin/env python
#coding=utf8
 
"""
使用socket方式來檢查服務(wù)器的監(jiān)控狀況
"""
 
from optparse import OptionParser
 
import socket
 
import sys
 
import re
 
from StringIO import StringIO
 
class check_server:
  """
  該類主要是利用socket建立一個連接以后,發(fā)送一個http請求,然后根據(jù)返回的狀態(tài)碼,判斷主機的健康狀況
  """
  def __init__(self,address,port,resource):
    self.address = address
    self.port = port
    self.resource = resource
 
 
  def check(self):
    """
    該方法也是該類的主要方法,包括構(gòu)建請求資源,解析返回結(jié)果等
    """
    if not self.resource.startswith('/'):
      self.resource = '/' + self.resource
 
    request = "GET %s HTTP/1.1\r\nHost:%s\r\n\r\n" %(self.resource,self.address)
 
    #建立一個socket連接
 
    s = socket.socket()
    #設(shè)置連接超時時間
    s.settimeout(10)
 
    print "現(xiàn)在開始對 %s 上的 %s 端口連接......" %(self.address,self.port)
 
    try:
      s.connect((self.address,self.port))
      print "連接 %s 上端口 %s 成功" %(self.address,self.port)
      s.send(request)
      response = s.recv(100)
 
    except socket.error,e:
      print "連接%s 上端口 %s 失敗 ,原因為:%s" %(self.address,self.port,e)
      return False
    finally:
      print "關(guān)閉連接"
      s.close()
 
 
    line = StringIO(response).readline()
 
    try:
      (http_version,status,messages) = re.split(r'\s+',line,2)
    except ValueError:
      print "分割響應(yīng)碼失敗"
      return False
    print "返回的狀態(tài)碼是%s" %(status)
 
    if status in ['200','301','302']:
 
      print "服務(wù)器的監(jiān)控狀況良好"
    else:
 
      print "乖乖,趕快上線看看,咋回事"
 
 
if __name__ == '__main__':
  """
  處理參數(shù)
  """
  parser =OptionParser()
  parser.add_option("-a","--address",dest="address" ,default='localhost',help="要檢查主機的地址或者主機名")
  parser.add_option('-p','--port',dest="port",type=int,default=80,help="要檢查主機的端口")
  parser.add_option('-r','--resource',dest="resource",default="/",help="要檢查的資源,比如")
  (options,args) = parser.parse_args()
 
#開始檢測鳥
checks = check_server(options.address,options.port,options.resource)
 
checks.check()

看下效果

相關(guān)文章

  • python中的循環(huán)結(jié)構(gòu)問題

    python中的循環(huán)結(jié)構(gòu)問題

    這篇文章主要介紹了python中的循環(huán)結(jié)構(gòu)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • python Web應(yīng)用程序測試selenium庫使用用法詳解

    python Web應(yīng)用程序測試selenium庫使用用法詳解

    selenium主要是用來做自動化測試,支持多種瀏覽器,爬蟲中主要用來解決JavaScript渲染問題本文詳細介紹了在python中selenium模塊的使用方法
    2021-10-10
  • Python定時器實例代碼

    Python定時器實例代碼

    這篇文章主要介紹了Python定時器實例代碼,向大家分享了兩部分代碼示例,一個是通過線程實現(xiàn)定時器timer,另一個是Python實現(xiàn)的精度可調(diào)的定時器實例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python 子類調(diào)用父類的構(gòu)造函數(shù)實例

    python 子類調(diào)用父類的構(gòu)造函數(shù)實例

    這篇文章主要介紹了python 子類調(diào)用父類的構(gòu)造函數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python中Scrapy?shell的使用

    python中Scrapy?shell的使用

    這篇文章主要介紹了python入門之Scrapy?shell的使用,scrapy提供了一個shell。用來方便的測試規(guī)則,下面我們一起進入文章學習該內(nèi)容吧,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • Python調(diào)用Orator?ORM進行數(shù)據(jù)庫操作

    Python調(diào)用Orator?ORM進行數(shù)據(jù)庫操作

    Orator?ORM?是一個功能豐富且靈活的?Python?ORM庫,旨在簡化數(shù)據(jù)庫操作,它支持多種數(shù)據(jù)庫并提供了簡潔且直觀的?API,下面我們就來看看它的具體使用吧
    2025-02-02
  • Python中for循環(huán)詳解

    Python中for循環(huán)詳解

    這篇文章主要介紹了Python中for循環(huán),有需要的朋友可以參考一下
    2014-01-01
  • Python使用Networkx實現(xiàn)復(fù)雜的人物關(guān)系圖

    Python使用Networkx實現(xiàn)復(fù)雜的人物關(guān)系圖

    日常工作、生活中我們經(jīng)常會遇到一些復(fù)雜的事務(wù)關(guān)系,比如人物關(guān)系,那如何才能清楚直觀的看清楚這些任務(wù)關(guān)系呢?所以小編給大家介紹了Python如何使用Networkx實現(xiàn)復(fù)雜的人物關(guān)系圖,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Python中的序列化詳細解析

    Python中的序列化詳細解析

    這篇文章主要介紹了Python中的序列化詳細解析,序列化是指把程序中的一個類轉(zhuǎn)化成一個標準化的格式,標準化的意義是這個格式可以跨程序,跨平臺的被使用,而且保持其原有的內(nèi)容,規(guī)范,需要的朋友可以參考下
    2023-11-11
  • Django實現(xiàn)drf搜索過濾和排序過濾

    Django實現(xiàn)drf搜索過濾和排序過濾

    當我們需要對后臺的數(shù)據(jù)進行過濾的時候,drf有兩種,搜索過濾和排序過濾。本文就詳細的介紹這兩種的實現(xiàn),感興趣的可以了解一下
    2021-06-06

最新評論

桐庐县| 天气| 陇南市| 武汉市| 云霄县| 青神县| 根河市| 藁城市| 曲沃县| 乌鲁木齐县| 西平县| 鄂伦春自治旗| 京山县| 南京市| 介休市| 兴海县| 弥勒县| 贡嘎县| 凤凰县| 兖州市| 都安| 于田县| 恩施市| 卓尼县| 集贤县| 玛多县| 通河县| 封开县| 六安市| 化德县| 汝城县| 保德县| 古田县| 措美县| 白城市| 马关县| 鹰潭市| 信阳市| 洱源县| 和顺县| 随州市|