Maison développement back-end Tutoriel Python 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监测网络接口获取网络的输入输出

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utiliser le Gestionnaire des tâches sous Linux Utiliser le Gestionnaire des tâches sous Linux Aug 15, 2024 am 07:30 AM

Utiliser le Gestionnaire des tâches sous Linux

Résoudre le problème de l'affichage tronqué des graphiques et des diagrammes sur le serveur de surveillance chinois Zabbix Résoudre le problème de l'affichage tronqué des graphiques et des diagrammes sur le serveur de surveillance chinois Zabbix Jul 31, 2024 pm 02:10 PM

Résoudre le problème de l'affichage tronqué des graphiques et des diagrammes sur le serveur de surveillance chinois Zabbix

7 façons de vous aider à vérifier la date d'enregistrement des utilisateurs Linux 7 façons de vous aider à vérifier la date d'enregistrement des utilisateurs Linux Aug 24, 2024 am 07:31 AM

7 façons de vous aider à vérifier la date d'enregistrement des utilisateurs Linux

Apprenez à ajouter des polices à Fedora en 5 minutes Apprenez à ajouter des polices à Fedora en 5 minutes Jul 23, 2024 am 09:45 AM

Apprenez à ajouter des polices à Fedora en 5 minutes

Que dois-je faire si les polices WPS manquantes sous le système Linux entraînent une déformation du fichier ? Que dois-je faire si les polices WPS manquantes sous le système Linux entraînent une déformation du fichier ? Jul 31, 2024 am 12:41 AM

Que dois-je faire si les polices WPS manquantes sous le système Linux entraînent une déformation du fichier ?

lancer! Exécuter DOS sur Raspberry Pi lancer! Exécuter DOS sur Raspberry Pi Jul 19, 2024 pm 05:23 PM

lancer! Exécuter DOS sur Raspberry Pi

Comment connecter deux hôtes Ubuntu à Internet à l'aide d'un seul câble réseau Comment connecter deux hôtes Ubuntu à Internet à l'aide d'un seul câble réseau Aug 07, 2024 pm 01:39 PM

Comment connecter deux hôtes Ubuntu à Internet à l'aide d'un seul câble réseau

Comment masquer l'historique de votre ligne de commande Linux Comment masquer l'historique de votre ligne de commande Linux Aug 17, 2024 am 07:34 AM

Comment masquer l'historique de votre ligne de commande Linux

See all articles