linux系統(tǒng)使用python監(jiān)測網(wǎng)絡(luò)接口獲取網(wǎng)絡(luò)的輸入輸出
net.py 獲取網(wǎng)絡(luò)接口的輸入和輸出
#!/usr/bin/env Python
import time
import sys
if len(sys.argv) > 1:
INTERFACE = sys.argv[1]
else:
INTERFACE = 'eth0'
STATS = []
print 'Interface:',INTERFACE
def rx():
ifstat = open('/proc/net/dev').readlines()
for interface in ifstat:
if INTERFACE in interface:
stat = float(interface.split()[1])
STATS[0:] = [stat]
def tx():
ifstat = open('/proc/net/dev').readlines()
for interface in ifstat:
if INTERFACE in interface:
stat = float(interface.split()[9])
STATS[1:] = [stat]
print 'In Out'
rx()
tx()
while True:
time.sleep(1)
rxstat_o = list(STATS)
rx()
tx()
RX = float(STATS[0])
RX_O = rxstat_o[0]
TX = float(STATS[1])
TX_O = rxstat_o[1]
RX_RATE = round((RX - RX_O)/1024/1024,3)
TX_RATE = round((TX - TX_O)/1024/1024,3)
print RX_RATE ,'MB ',TX_RATE ,'MB'
簡單說明一下清單 4:清單 4 讀取/proc/net/dev 中的信息,Python 中文件操作可以通過 open 函數(shù),這的確很像 C 語言中的 fopen。通過 open 函數(shù)獲取一個 file object,然后調(diào)用 read(),write()等方法對文件進行讀寫操作。另外 Python 將文本文件的內(nèi)容讀入可以操作的字符串變量非常容易。文件對象提供了三個“讀”方法: read()、readline() 和 readlines()。每種方法可以接受一個變量以限制每次讀取的數(shù)據(jù)量,但它們通常不使用變量。 .read() 每次讀取整個文件,它通常用于將文件內(nèi)容放到一個字符串變量中。然而 .read() 生成文件內(nèi)容最直接的字符串表示,但對于連續(xù)的面向行的處理,它卻是不必要的,并且如果文件大于可用內(nèi)存,則不可能實現(xiàn)這種處理。.readline() 和 .readlines() 之間的差異是后者一次讀取整個文件,象 .read() 一樣。.readlines() 自動將文件內(nèi)容分析成一個行的列表,該列表可以由 Python 的 for ... in ... 結(jié)構(gòu)進行處理。另一方面,.readline() 每次只讀取一行,通常比 .readlines() 慢得多。僅當(dāng)沒有足夠內(nèi)存可以一次讀取整個文件時,才應(yīng)該使用 .readline()。最后清單 4 打印出網(wǎng)絡(luò)接口的輸入和輸出情況。
可以使用 Python 命令運行腳本 net.py 結(jié)果見圖 4 
相關(guān)文章
Python apscheduler實現(xiàn)定時任務(wù)的方法詳解
apscheduler(Advanced Python Scheduler)是一個用于Python的靈活、強大的定時任務(wù)調(diào)度庫,它允許您以各種方式安排函數(shù)或方法的執(zhí)行,下面就跟隨小編一起學(xué)習(xí)一下它的具體使用吧2023-10-10
Python利用Selenium進行網(wǎng)頁自動化與動態(tài)內(nèi)容抓取操作
Selenium是一個自動化測試工具,它允許開發(fā)者模擬用戶的瀏覽器行為,執(zhí)行各種交互操作,下面就跟隨小編一起了解下如何使用Python和Selenium進行網(wǎng)頁自動化與動態(tài)內(nèi)容抓取吧2025-03-03
Python利用omegaconf庫輕松實現(xiàn)配置文件管理
omegaconf是一個靈活且強大的Python配置管理庫,支持YAML,dict,列表等多種數(shù)據(jù)格式,下面我們就來看看如何使用omegaconf實現(xiàn)配置文件管理吧2025-02-02
python+django加載靜態(tài)網(wǎng)頁模板解析
這篇文章主要介紹了python+django加載靜態(tài)網(wǎng)頁模板解析,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12

