Shell脚本实现的单机流量统计功能
2014-11-28 15:50
936 查看
在网上看到这个单机流量的脚本,挺不错的。
复制代码 代码如下:#!/bin/sh
usage(){
echo “Usage: $0 [-i INTERFACE] [-s INTERVAL] [-c COUNT]”
echo
echo “-i INTERFACE”
echo “ The interface to monitor, default is eth0.”
echo “-s INTERVAL”
echo “ The time to wait in seconds between measurements, default is 3 seconds.”
echo “-c COUNT”
echo “ The number of times to measure, default is 10 times.”
exit 3
}
readargs(){
while [ "$#" -gt 0 ] ; do
case “$1″ in
-i)
if [ "$2" ] ; then
interface=”$2″
shift ; shift
else
echo “Missing a value for $1.”
echo
shift
usage
fi
;;
-s)
if [ "$2" ] ; then
sleep=”$2″
shift ; shift
else
echo “Missing a value for $1.”
echo
shift
usage
fi
;;
-c)
if [ "$2" ] ; then
counter=”$2″
shift ; shift
else
echo “Missing a value for $1.”
echo
shift
usage
fi
;;
*)
echo “Unknown option $1.”
echo
shift
usage
;;
esac
done
}
checkargs(){
if [ ! "$interface" ] ; then
interface=”eth0″
fi
if [ ! "$sleep" ] ; then
sleep=”3″
fi
if [ ! "$counter" ] ; then
counter=”10″
fi
}
printrxbytes(){
/sbin/ifconfig “$interface” | grep “RX bytes” | cut -d: -f2 | awk ‘{ print $1 }'
}
printtxbytes(){
/sbin/ifconfig “$interface” | grep “TX bytes” | cut -d: -f3 | awk ‘{ print $1 }'
}
bytestohumanreadable(){
multiplier=”0″
number=”$1″
while [ "$number" -ge 1024 ] ; do
multiplier=$(($multiplier+1))
number=$(($number/1024))
done
case “$multiplier” in
1)
echo “$number Kb”
;;
2)
echo “$number Mb”
;;
3)
echo “$number Gb”
;;
4)
echo “$number Tb”
;;
*)
echo “$1 b”
;;
esac
}
printresults(){
while [ "$counter" -ge 0 ] ; do
counter=$(($counter – 1))
if [ "$rxbytes" ] ; then
oldrxbytes=”$rxbytes”
oldtxbytes=”$txbytes”
fi
rxbytes=$(printrxbytes)
txbytes=$(printtxbytes)
if [ "$oldrxbytes" -a "$rxbytes" -a "$oldtxbytes" -a "$txbytes" ] ; then
echo “$(/bin/date +%Y%m%d-%H%M%S) RXbytes = $(bytestohumanreadable $(($rxbytes – $oldrxbytes))) TXbytes = $(bytestohumanreadable $(($txbytes – $oldtxbytes)))”
else
echo “Monitoring $interface every $sleep seconds. (RXbyte total = $(bytestohumanreadable $rxbytes) TXbytes total = $(bytestohumanreadable $txbytes))”
fi
sleep “$sleep”
done
}
readargs “$@”
checkargs
printresults
测试如下:
每三秒的流量,总输出999行,可以输出到文件里,其中:前面为时间,Rx Packets 是接收数据包,即下载,Tx Packets 是发送数据包,即上传.
复制代码 代码如下:[root@host]#sh t.sh -c 999 Monitoring eth0 every 3 seconds. (RXbyte total = 6 Tb TXbytes total = 5 Tb)
20101105-201539 RXbytes = 126 Kb TXbytes = 658 Kb
20101105-201542 RXbytes = 87 Kb TXbytes = 487 Kb
20101105-201545 RXbytes = 159 Kb TXbytes = 668 Kb
20101105-201548 RXbytes = 107 Kb TXbytes = 725 Kb
20101105-201551 RXbytes = 110 Kb TXbytes = 704 Kb
20101105-201554 RXbytes = 90 Kb TXbytes = 726 Kb
20101105-201558 RXbytes = 100 Kb TXbytes = 850 Kb
20101105-201601 RXbytes = 102 Kb TXbytes = 703 Kb
20101105-201604 RXbytes = 168 Kb TXbytes = 693 Kb
20101105-201607 RXbytes = 105 Kb TXbytes = 730 Kb
20101105-201610 RXbytes = 133 Kb TXbytes = 711 Kb
20101105-201613 RXbytes = 431 Kb TXbytes = 703 Kb
20101105-201616 RXbytes = 84 Kb TXbytes = 527 Kb
20101105-201619 RXbytes = 239 Kb TXbytes = 825 Kb
20101105-201622 RXbytes = 117 Kb TXbytes = 801 Kb
20101105-201625 RXbytes = 99 Kb TXbytes = 913 Kb
20101105-201628 RXbytes = 89 Kb TXbytes = 322 Kb
20101105-201631 RXbytes = 63 Kb TXbytes = 73 Kb
20101105-201634 RXbytes = 84 Kb TXbytes = 191 Kb
20101105-201637 RXbytes = 174 Kb TXbytes = 481 Kb
20101105-201640 RXbytes = 120 Kb TXbytes = 383 Kb
20101105-201643 RXbytes = 94 Kb TXbytes = 496 Kb
20101105-201646 RXbytes = 108 Kb TXbytes = 340 Kb
20101105-201649 RXbytes = 91 Kb TXbytes = 639 Kb
20101105-201652 RXbytes = 106 Kb TXbytes = 629 Kb
20101105-201655 RXbytes = 125 Kb TXbytes = 496 Kb
20101105-201658 RXbytes = 90 Kb TXbytes = 537 Kb
20101105-201701 RXbytes = 114 Kb TXbytes = 641 Kb
相关文章推荐
- Shell脚本实现的单机流量统计功能
- 统计网卡流量的两段shell脚本(使用ifconfig)
- 实现dos2linux功能-shell脚本篇
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- shell脚本实现ssh自动登录功能分享
- shell脚本实现系统监视统计与数据备份
- 博客园公告栏微博相关功能及流量统计实现
- 统计网卡流量的两段shell脚本(使用ifconfig) 详细出处参考:http://www.jb51.net/article/34290.htm
- android 流量统计功能 的实现
- 利用shell脚本实现计划任务功能
- shell脚本实现ssh自动登录功能分享
- php流量统计功能的实现代码
- Shell脚本 网卡流量统计(转)
- 利用shell脚本实现计划任务功能
- 统计网卡流量的两段shell脚本(使用ifconfig)
- shell awk实现实时监控网卡流量脚本(常见应用二)
- 流量统计功能的实现代码
- shell脚本实现系统监视统计与数据备份
- Shell脚本 网卡流量统计(转)
- 使用shell脚本实现自动SSH互信功能