用shell脚本统计网卡的流量。
代码:
 
复制代码 代码示例:
#!/bin/bash 
#mysql 启动脚本  
#Author=ftqzy  
#Modified=2013-07-25  
#Version=1.0 
#function=通过/proc/net/dev文件记录一段时间内的数值差,求得平均值,分别得到一段内跑的流量和在该时间段内平均每秒跑的速度 
#System=CentOS 5.5 64bit 
 
echo -n  
"请输入需要查询的网卡的接口:"  
read eth  
 
echo "你要查询的网卡接口为"$eth  
 
echo -n  
"输入需要等到的时间(秒):"  
read sec  
 
echo "你计算的是"$sec"秒内的平均流量"  
 
#第一次读取网卡in与out的值,做为初始值 
#In流量初始值: 
in_=$(awk '/'$eth'/{print $1 }' /proc/net/dev |sed 's/'$eth'://')  
#Out流量初始值: 
out_=$(awk '/'$eth'/{print $9 }' /proc/net/dev)  
#第一次网卡流量总和: 
sum_=$(($in_ + $out_)) 
 
#使脚本休息$sec秒,计算$sec秒中产生的流量 
sleep $sec"s" 
 
#第二次读取网卡in与out的值,使其与第一次读取的初始值相减得到在$sec秒中服务器所跑流量 
#In流量: 
_in=$(awk '/'$eth'/{print $1 }' /proc/net/dev |sed 's/'$eth'://')  
#Out流量: 
_out=$(awk '/'$eth'/{print $9 }' /proc/net/dev)  
#In与Out流量总和 
_sum=$(($inend+$outend)) 
#在$sec秒中产生的流量: 
sum=$(($_sum - $sum_))  
 
echo  
$sec"秒内总流量为:"$sum"bytes"  
#求得在$sec秒内,平均每秒所跑流量: 
aver=$(($sum/$sec))  
echo  
"平均流量为:"$aver"bytes/sec"