bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

python腳本中如何調用iftop統計業務應用流量-創新互聯

這篇文章主要介紹python腳本中如何調用iftop統計業務應用流量,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創新互聯2013年開創至今,是專業互聯網技術服務公司,擁有項目成都網站建設、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元匯川做網站,已為上家服務,為匯川各地企業和個人服務,聯系電話:13518219792
  • 利用iftop命令 iftop -t -P -N -n -s 2 來獲取流量信息

  • 對獲取的流量信息進行處理,單位換算,同一個應用程序的所有鏈接流量進行合計(因為一個應用會有很多鏈接,每一個鏈接都有流量,全部相加即可得出這個應用的總流量)

#!/usr/bin/python
#coding=utf-8
#針對業務監聽的端口流量進行統計,忽略對隨機端口流量統計
#若針對突然流量增大,找到其進程進行告警,可以不做統計,獲取到流量進行判斷,若大于多少閥值,則輸出
import os
def change_unit(unit):
 if "Mb" in unit:
  flow = float(unit.strip("Mb")) * 1024
  return flow
 elif "Kb" in unit:
  flow = float(unit.strip("Kb"))
  return flow
 elif "b" in unit:
  flow = float(unit.strip("b")) / 1024
  return flow
def get_flow():
 #iftop參數:-t 使用不帶ncurses的文本界面,-P顯示主機以及端口信息,-N只顯示連接端口號,不顯示端口對應的服務名稱,-n 將輸出的主機信息都通過IP顯示,不進行DNS解析,-s num num秒后打印一次文本輸出然后退出
 mes = os.popen("iftop -t -P -N -n -s 2 2>/dev/null |grep -A 1 -E '^ [0-9]'").read()
 #以換行符進行分割
 iftop_list = mes.split("\n")
 count = len(iftop_list)
 #定義字典 存放主機信息和進出流量
 flow_dict = {}
 #定義列表,存放主機信息
 host_ips = []
# 把主機加入數組,新的主機查詢是否在列表里面,沒有的話,把主機信息加入host_ips,并新組裝一個字典值加入flow_dict字典,如果host_ips存在主機信息,則把字典值取出來,重新計算增加流量數值,再加入字典flow_dict
 #這里的 count/2 是iftop獲取到的數據,是進出流量為一組,則有count/2 個流量連接,可執行os.popen 里面的iftop命令即可明白
 for i in range(count/2):
  flow_msg = ""
  #獲取發送的ip地址(本地ip地址),端口(本地端口),發送的流量,以換行符分割后,數據偶數位為本地發送流量信息
  location_li_s = iftop_list[i*2]
  send_flow_lists = location_li_s.split(" ")
  #去空元素
  while '' in send_flow_lists:
   send_flow_lists.remove('')
  host_ip = send_flow_lists[1]
  send_flow = send_flow_lists[3]
  send_flow_float = change_unit(send_flow)
  #print send_flow_lists
  #獲取接收的流量
  location_li_r = iftop_list[i*2+1]
  rec_flow_lists = location_li_r.split(" ")
  while '' in rec_flow_lists:
   rec_flow_lists.remove('')
  rec_flow = rec_flow_lists[3]
  rec_flow_float = change_unit(rec_flow) 
  #去掉本地linux 大于10000的隨機端口,因為公司業務應用無大于10000,也可把這里去掉
  port = host_ip.split(":")[1]
  if int(port) < 10000:
  #主機信息若不存在列表則加入host_ips,若存在,則字典取值,對進出流量進行相加
   if host_ip not in host_ips:
     host_ips.append(host_ip)
     flow_msg = str(float('%2.f' % send_flow_float)) + ":" + str(float('%.2f' % rec_flow_float))
     flow_dict[host_ip]=flow_msg
   else:
    flow_dict_msg = flow_dict[host_ip]
    flow_dict_msg_li = flow_dict_msg.split(":")
    #獲取字典里的發送接收流量
    flow_dict_msg_send = float(flow_dict_msg_li[0])
    flow_dict_msg_rec = float(flow_dict_msg_li[1])
    #字典里面的發送接收流量和獲取到的新流量相加
    flow_add_send = flow_dict_msg_send + send_flow_float
    flow_add_rec = flow_dict_msg_rec + rec_flow_float
    #把新得出的結果,更新到字典
    flow_msg = str(float('%.2f' % flow_add_send)) + ":" + str(float('%.2f' % flow_add_rec))
    flow_dict[host_ip]=flow_msg
 for key in flow_dict:
  flow_li = flow_dict[key].split(":")
  #flow_li[0]為發送流量,flow_li[1]為接收流量,單位是Kb
  print key + "|" + flow_li[0] + "|" + flow_li[1]
get_flow()

以上是“python腳本中如何調用iftop統計業務應用流量”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:python腳本中如何調用iftop統計業務應用流量-創新互聯
當前路徑:http://vcdvsql.cn/article48/hcdhp.html

成都網站建設公司_創新互聯,為您提供企業網站制作網站維護外貿網站建設網頁設計公司營銷型網站建設App開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司