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画ROC曲线和AUC值计算
Sep 19 Python
python3中set(集合)的语法总结分享
Mar 24 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
python dict 相同key 合并value的实例
Jan 21 Python
python学习开发mock接口
Apr 28 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
python实现登录与注册系统
Nov 30 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中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
react的hooks的用法详解
2020/10/12 Javascript
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python字典改变value值方法总结
2019/06/21 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
保安的辞职报告怎么写
2014/01/20 职场文书
八年级数学教学反思
2014/01/31 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
活动总结模板大全
2015/05/11 职场文书
消防宣传标语大全
2015/08/03 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android