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


Posted in Python onJanuary 15, 2014

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监测网络接口获取网络的输入输出

Python 相关文章推荐
简单分析Python中用fork()函数生成的子进程
May 04 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
python进阶之自定义可迭代的类
Aug 20 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
python实现局域网内实时通信代码
Dec 22 Python
python3爬取torrent种子链接实例
Jan 16 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
Python configparser模块操作代码实例
Jun 08 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 Python
Django多数据库联用实现方法解析
Nov 12 Python
Python 的 f-string 可以连接字符串与数字的原因解析
Feb 20 Python
linux系统使用python监控apache服务器进程脚本分享
Jan 15 #Python
Python获取当前时间的方法
Jan 14 #Python
Python生成随机数的方法
Jan 14 #Python
python模拟登陆Tom邮箱示例分享
Jan 13 #Python
python调用cmd命令行制作刷博器
Jan 13 #Python
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 #Python
python实现异步回调机制代码分享
Jan 10 #Python
You might like
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
php 生成文字png图片的代码
2011/04/17 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
Python中使用中文的方法
2011/02/19 Python
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
python+opencv实现动态物体追踪
2018/01/09 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
什么是属性访问器
2015/10/26 面试题
施工安全协议书
2013/12/11 职场文书
青年教师培训方案
2014/02/06 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
先进学校事迹材料
2014/12/30 职场文书
商场收银员岗位职责
2015/04/07 职场文书
作息时间调整通知
2015/04/22 职场文书
机器人瓦力观后感
2015/06/12 职场文书