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实现微信远程控制电脑
Feb 22 Python
python用户评论标签匹配的解决方法
May 31 Python
Python中if elif else及缩进的使用简述
May 31 Python
【python】matplotlib动态显示详解
Apr 11 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 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
多重?l件?合查?(二)
2006/10/09 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
JS定时器实例
2013/04/17 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
python实现tail实时查看服务器日志示例
2019/12/24 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
父亲生日宴会答谢词
2014/01/10 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
大学迎新生标语
2014/10/06 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
python常见的占位符总结及用法
2021/07/02 Python