亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

對(duì)web服務(wù)器做健康檢查,一般我們都是用curl庫(kù)(不管是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庫(kù)的,另外還有一些關(guān)于http的模塊,例如perl的LWP,python的httplib,urllib或者urllib2 也可以去實(shí)現(xiàn),今天就走的比較低級(jí)一些,就使用socket方式來(lái)進(jìn)行一次檢測(cè):

#!/usr/bin/env python
#coding=utf8
 
"""
使用socket方式來(lái)檢查服務(wù)器的監(jiān)控狀況
"""
 
from optparse import OptionParser
 
import socket
 
import sys
 
import re
 
from StringIO import StringIO
 
class check_server:
  """
  該類主要是利用socket建立一個(gè)連接以后,發(fā)送一個(gè)http請(qǐng)求,然后根據(jù)返回的狀態(tài)碼,判斷主機(jī)的健康狀況
  """
  def __init__(self,address,port,resource):
    self.address = address
    self.port = port
    self.resource = resource
 
 
  def check(self):
    """
    該方法也是該類的主要方法,包括構(gòu)建請(qǐng)求資源,解析返回結(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)
 
    #建立一個(gè)socket連接
 
    s = socket.socket()
    #設(shè)置連接超時(shí)時(shí)間
    s.settimeout(10)
 
    print "現(xiàn)在開始對(duì) %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 失敗 ,原因?yàn)?%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="要檢查主機(jī)的地址或者主機(jī)名")
  parser.add_option('-p','--port',dest="port",type=int,default=80,help="要檢查主機(jī)的端口")
  parser.add_option('-r','--resource',dest="resource",default="/",help="要檢查的資源,比如")
  (options,args) = parser.parse_args()
 
#開始檢測(cè)鳥
checks = check_server(options.address,options.port,options.resource)
 
checks.check()

看下效果

相關(guān)文章

  • Python中請(qǐng)不要再用re.compile了

    Python中請(qǐng)不要再用re.compile了

    這篇文章主要給大家介紹了關(guān)于Python中為何不要再用re.compile的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python面向?qū)ο缶幊淘O(shè)計(jì)原則之單一職責(zé)原則詳解

    python面向?qū)ο缶幊淘O(shè)計(jì)原則之單一職責(zé)原則詳解

    這篇文章主要為大家詳細(xì)介紹了python面向?qū)ο缶幊淘O(shè)計(jì)原則之單一職責(zé)原則,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Python爬蟲 bilibili視頻彈幕提取過程詳解

    Python爬蟲 bilibili視頻彈幕提取過程詳解

    這篇文章主要介紹了Python爬蟲 bilibili視頻彈幕提取過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python 字符串、列表、元組的截取與切片操作示例

    Python 字符串、列表、元組的截取與切片操作示例

    這篇文章主要介紹了Python 字符串、列表、元組的截取與切片操作,結(jié)合實(shí)例形式分析了Python針對(duì)字符串、列表、元組的截取與切片相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • 用Python創(chuàng)建簡(jiǎn)易網(wǎng)站圖文教程

    用Python創(chuàng)建簡(jiǎn)易網(wǎng)站圖文教程

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著用Python創(chuàng)建簡(jiǎn)易網(wǎng)站展開,文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • 詳解使用Python下載文件的幾種方法

    詳解使用Python下載文件的幾種方法

    這篇文章主要介紹了詳解使用Python下載文件的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python計(jì)算庫(kù)numpy進(jìn)行方差/標(biāo)準(zhǔn)方差/樣本標(biāo)準(zhǔn)方差/協(xié)方差的計(jì)算

    Python計(jì)算庫(kù)numpy進(jìn)行方差/標(biāo)準(zhǔn)方差/樣本標(biāo)準(zhǔn)方差/協(xié)方差的計(jì)算

    今天小編就為大家分享一篇關(guān)于Python計(jì)算庫(kù)numpy進(jìn)行方差/標(biāo)準(zhǔn)方差/樣本標(biāo)準(zhǔn)方差/協(xié)方差的計(jì)算,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 使用Python給頭像加上圣誕帽或圣誕老人小圖標(biāo)附源碼

    使用Python給頭像加上圣誕帽或圣誕老人小圖標(biāo)附源碼

    圣誕的到來(lái)給大家?guī)?lái)喜悅,今天圣誕老人給大家送一頂圣誕帽,今天小編通過代碼給大家分享使用Python給頭像加上圣誕帽或圣誕老人小圖標(biāo)附源碼,需要的朋友一起看看吧
    2019-12-12
  • django+xadmin+djcelery實(shí)現(xiàn)后臺(tái)管理定時(shí)任務(wù)

    django+xadmin+djcelery實(shí)現(xiàn)后臺(tái)管理定時(shí)任務(wù)

    這篇文章主要介紹了django+xadmin+djcelery實(shí)現(xiàn)后臺(tái)管理定時(shí)任務(wù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-08-08
  • Python如何生成xml文件

    Python如何生成xml文件

    在本篇文章里小編給大家分享的是一篇關(guān)于Python生成xml文件方法以及實(shí)例代碼,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06

最新評(píng)論