欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

復制代碼 代碼如下:

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方式來檢查服務器的監(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()
    #設置連接超時時間
    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 "分割響應碼失敗"
      return False
    print "返回的狀態(tài)碼是%s" %(status)
 
    if status in ['200','301','302']:
 
      print "服務器的監(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中請不要再用re.compile了

    Python中請不要再用re.compile了

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

    python面向?qū)ο缶幊淘O計原則之單一職責原則詳解

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

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

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

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

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

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

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

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

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

    Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的計算

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

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

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

    django+xadmin+djcelery實現(xiàn)后臺管理定時任務

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

    Python如何生成xml文件

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

最新評論