linux单机根据ip查看流量
浏览:3912次 出处信息
我们有些机房是双线机房,一般的机器上面只有2个网卡,而我们搭建网络,一般有外网,内网,由于是双线,就存在电信跟网通2个ip,再加一个内网ip,就存在3个ip,这样的话,在同一个网卡上面就同时存在电信的ip以及网通的ip就不可避免,这个时候,我们想知道这个机器电信跑了多少的流量,网通跑了多少的流量,系统也没有提供相关的查看方法,在互联网上面找了一圈,也没有找到相关的工具,最后没有办法,只能自动动手,丰衣足食.花了一点点时间,学习一下systemtap,下面就贴一下我写的一个简单的脚本程序,具体如下:
global net_ip_read, net_ip_write
probe tcp.recvmsg {
if (size <= 0) next;
sk = @defined($sk) ? $sk : $sock->sk;
ip = tcpmib_local_addr(sk)
if (ip)
net_ip_read[ip] <<< size;
}
probe tcp.sendmsg {
if (size <= 0) next;
sk = @defined($sk) ? $sk : $sock->sk;
ip = tcpmib_local_addr(sk);
if (ip)
net_ip_write[ip] <<< size;
}
probe end {
printf("IP Recev_KBit\tSend_KBit\n");
foreach([ip] in net_ip_read) {
n_sk_rx = @count(net_ip_read[ip])
n_sk_tx = @count(net_ip_write[ip])
printf("%s\t%d\t\t%d\n",
ip_ntop(htonl(ip)),
n_sk_rx ? @sum(net_ip_read[ip])/1024*8 : 0,
n_sk_tx ? @sum(net_ip_write[ip])/1024*8 : 0);
}
delete net_ip_read
delete net_ip_write
}
运行方法
stap traffic.stp -c "sleep 1"
得到的结果如下![]()
要运行该脚本记得先安装systemtap这个软件,同时记得给内核安装kernel-debuginfo安装包,另外这里面只是利用tcp的相关接口,统计到的单机每一个ip的流量,如果你的机器上面运行的是udp的服务,统计到的数据将不准确,仔细查看了systemtap里面的相关接口,也没有找到udp相关的查看方法,由于我们的机器上面大部分都是跑的tcp的服务,基本没有提供udp的服务,故基本能满足我的需求,另外大家也可以把脚本改一改,很容易就可以实现每秒实时的显示流量,我这个脚本为了让他在后台运行,方便统计,写成只运行一次.
建议继续学习:
- Linux下三种常用的流量监控软件对比 (阅读:9535)
- 脚本利用SNMP mib/oid分析网卡流量 (阅读:7535)
- nicstat 网络流量统计利器 (阅读:7036)
- cacti+apache+php+mysql+rrdtool搭建流量监控平台 (阅读:6370)
- 通过shell 脚本查看服务器的时时流量 (阅读:4678)
- 网络流量监控软件vnStat (阅读:4436)
- 你的服务器能承受多大流量 (阅读:4205)
- 在CGI中通过Etag和Cache-Control来控制流量,访问量及生效时间 (阅读:3866)
- 小文件优化之道-文件成组 (阅读:3535)
- 关于流量升高导致TIME_WAIT增加,MySQL连接大量失败的问题 (阅读:3039)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:python实现一个P2P文件发布
后一篇:web业务尽快升级到centos 6.4的理由 >>
文章信息
- 作者:zhou 来源: 展示过去,展望未来【周灵杰】
- 标签: 流量
- 发布时间:2014-03-20 23:05:36
建议继续学习
近3天十大热文
-
[881] WordPress插件开发 -- 在插件使用 -
[136] 解决 nginx 反向代理网页首尾出现神秘字 -
[57] 整理了一份招PHP高级工程师的面试题 -
[54] Innodb分表太多或者表分区太多,会导致内 -
[54] 分享一个JQUERY颜色选择插件 -
[54] 用 Jquery 模拟 select -
[54] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] jQuery性能优化指南 -
[52] CloudSMS:免费匿名的云短信 -
[51] 全站换域名时利用nginx和javascri
