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实现的端口扫描功能示例
Apr 08 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
May 08 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
使用Python进行目录的对比方法
Nov 01 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
Python实现TCP通信的示例代码
Sep 09 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
Tensorflow 实现释放内存
Feb 03 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
python如何随机生成高强度密码
Aug 19 Python
python使用BeautifulSoup 解析HTML
Apr 24 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
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
javascript常见用法总结
2014/05/22 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Python-for循环的内部机制
2020/06/12 Python
animation和transition的区别
2020/10/12 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
工程造价专业大专生求职信
2013/10/06 职场文书
软环境建设心得体会
2014/09/09 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
社会实践活动报告
2015/02/05 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
实践论读书笔记
2015/06/29 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫