Heim Backend-Entwicklung Python-Tutorial linux系统使用python监测网络接口获取网络的输入输出

linux系统使用python监测网络接口获取网络的输入输出

Jun 16, 2016 am 08:45 AM
linux系统 输入输出

net.py 获取网络接口的输入和输出

复制代码 代码如下:

#!/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 函数,这的确很像 C 语言中的 fopen。通过 open 函数获取一个 file object,然后调用 read(),write()等方法对文件进行读写操作。另外 Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: read()、readline() 和 readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。最后清单 4 打印出网络接口的输入和输出情况。
可以使用 Python 命令运行脚本 net.py 结果见图 4

linux系统使用python监测网络接口获取网络的输入输出

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden des Task-Managers unter Linux Verwenden des Task-Managers unter Linux Aug 15, 2024 am 07:30 AM

Verwenden des Task-Managers unter Linux

Lösen Sie das Problem der verstümmelten Anzeige von Grafiken und Diagrammen auf dem chinesischen Überwachungsserver Zabbix Lösen Sie das Problem der verstümmelten Anzeige von Grafiken und Diagrammen auf dem chinesischen Überwachungsserver Zabbix Jul 31, 2024 pm 02:10 PM

Lösen Sie das Problem der verstümmelten Anzeige von Grafiken und Diagrammen auf dem chinesischen Überwachungsserver Zabbix

7 Möglichkeiten, wie Sie das Registrierungsdatum von Linux-Benutzern überprüfen können 7 Möglichkeiten, wie Sie das Registrierungsdatum von Linux-Benutzern überprüfen können Aug 24, 2024 am 07:31 AM

7 Möglichkeiten, wie Sie das Registrierungsdatum von Linux-Benutzern überprüfen können

Erfahren Sie in 5 Minuten, wie Sie Schriftarten zu Fedora hinzufügen Erfahren Sie in 5 Minuten, wie Sie Schriftarten zu Fedora hinzufügen Jul 23, 2024 am 09:45 AM

Erfahren Sie in 5 Minuten, wie Sie Schriftarten zu Fedora hinzufügen

Was soll ich tun, wenn die fehlenden WPS-Schriftarten unter dem Linux-System dazu führen, dass die Datei verstümmelt wird? Was soll ich tun, wenn die fehlenden WPS-Schriftarten unter dem Linux-System dazu führen, dass die Datei verstümmelt wird? Jul 31, 2024 am 12:41 AM

Was soll ich tun, wenn die fehlenden WPS-Schriftarten unter dem Linux-System dazu führen, dass die Datei verstümmelt wird?

werfen! Ausführen von DOS auf Raspberry Pi werfen! Ausführen von DOS auf Raspberry Pi Jul 19, 2024 pm 05:23 PM

werfen! Ausführen von DOS auf Raspberry Pi

So verbinden Sie zwei Ubuntu-Hosts mit einem Netzwerkkabel mit dem Internet So verbinden Sie zwei Ubuntu-Hosts mit einem Netzwerkkabel mit dem Internet Aug 07, 2024 pm 01:39 PM

So verbinden Sie zwei Ubuntu-Hosts mit einem Netzwerkkabel mit dem Internet

So verbergen Sie Ihren Linux-Befehlszeilenverlauf So verbergen Sie Ihren Linux-Befehlszeilenverlauf Aug 17, 2024 am 07:34 AM

So verbergen Sie Ihren Linux-Befehlszeilenverlauf

See all articles