ホームページ  >  記事  >  バックエンド開発  >  Linux システムは Python を使用してネットワーク インターフェイスを監視し、ネットワークの入出力を取得します。

Linux システムは Python を使用してネットワーク インターフェイスを監視し、ネットワークの入出力を取得します。

WBOY
WBOYオリジナル
2016-06-16 08:45:411209ブラウズ

net.py 获取网络インターフェイスの入出力

复制代码代码如下:

#!/usr/bin/env Python
インポート時間
インポートシス

if len(sys.argv) > 1:
INTERFACE = sys.argv[1]
else:
INTERFACE = 'eth0'
STATS = []
print 'Interface:',INTERFACE

def rx():
ifstat = open('/proc/net/dev').readlines()
ifstat のインターフェイスの場合:
if INTERFACE のインターフェイス:
stat = float (interface.split()[1])
STATS[0:] = [統計]

def tx():
ifstat = open('/proc/net/dev').readlines()
インターフェイスの場合 ifstat:
インターフェイスのインターフェイスの場合:
stat = float (interface.split()[9])
STATS[1:] = [統計]

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 関数の数、つまりイメージ C の言語内の fopen を介してファイル オブジェクトを取得できます。次に、read()、write() などのメソッドを使用してファイルの書き込み操作を実行します。 さらに、Python では、操作可能な文字列をテキストに簡単に読み込むことができます。各メソッドは、毎回取得するデータ量を制限するために変数を受け取ることができますが、通常はファイルを読み込むために使用されません。ただし、.read() はファイルの内容を直接文字列で表示しますが、継続的な処理ではこれは必要なく、ファイルが内部に保存できるサイズを超える場合は実行できません。この処理を実行します。.readline() と .readlines() の違いは、後からファイル全体をオブジェクト .read() で取得することです。列表は Python の for ... in ... 構造で処理できます。一方、.readline() は毎回 1 行ずつ取得するだけですが、通常は .readlines() よりも時間がかかります。ファイルを取得するときは、.readline() を使用します。最後に、ネットワーク インターフェイスの入出力状況を出力します。
は、Python コマンドを使用して net.py を実行できます。 図 4

Linux システムは Python を使用してネットワーク インターフェイスを監視し、ネットワークの入出力を取得します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。