Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1733794
  • 博文数量: 163
  • 博客积分: 10591
  • 博客等级: 上将
  • 技术积分: 1980
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-08 18:17
文章分类

全部博文(163)

文章存档

2018年(1)

2012年(1)

2011年(47)

2010年(58)

2009年(21)

2008年(35)

分类: LINUX

2009-12-09 14:57:32

ifconfig,会有这样的输出:
          RX bytes:1224128649 (1.1 GiB)  TX bytes:34114947 (32.5 MiB)

过一会再看,数值有所变化,两者的差值就是过去一段时间的流量。可是,这也太不人性化了……

正所谓自己动手,丰衣足食,我们自己来写一个脚本,实时显示并刷新!

脚本如下,还是哪句话,本人功力有限,写脚本的原则是够用就好。


#!/bin/bash

if [ -n "$1" ]; then
  eth_name=$1
else
  eth_name="eth0"
fi

i=0

send_o=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
recv_o=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
send_n=$send_o
recv_n=$recv_o

while [ $i -le 100000 ]; do
  send_l=$send_n
  recv_l=$recv_n
  sleep 1
  send_n=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
  recv_n=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
  i=`expr $i + 1`
  send_r=`expr $send_n - $send_l`
  recv_r=`expr $recv_n - $recv_l`
  total_r=`expr $send_r + $recv_r`
  send_ra=`expr \( $send_n - $send_o \) / $i`
  recv_ra=`expr \( $recv_n - $recv_o \) / $i`
  total_ra=`expr $send_ra + $recv_ra`
  sendn=`ifconfig $eth_name | grep bytes | awk -F \( '{print $3}' | awk -F \) '{print $1}'`
  recvn=`ifconfig $eth_name | grep bytes | awk -F \( '{print $2}' | awk -F \) '{print $1}'`
  clear
  echo  "Last second  :   Send rate: $send_r Bytes/sec  Recv rate: $recv_r Bytes/sec  Total rate: $total_r Bytes/sec"
  echo  "Average value:   Send rate: $send_ra Bytes/sec  Recv rate: $recv_ra Bytes/sec  Total rate: $total_ra Bytes/sec"
  echo  "Total traffic after startup:    Send traffic: $sendn  Recv traffic: $recvn"
done


该脚本(假设名叫traffic)默认显示eth0的流量,如果你有多个网卡,请将网卡作为参数传进去,比如:
./traffic  eth1

运行结果如下:
src=""

 

 

有的时候我们也想看一下当前系统的网络连接情况,下面这条命令就很好:

#!/bin/bash

while [[ 1 ]]
do
        netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
        sleep 2
        clear
done

阅读(1705) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-12-14 22:05:52

我来看过了哦! 新手一个,支持下LZ。

chinaunix网友2009-12-14 22:05:38

我来看过了哦! 新手一个,支持下LZ。

benxiong2009-12-14 13:16:21

恩,如果用centos的话,yum轻松的就装上了。不过个人觉得这个小脚本也是个比较方便的小工具~~

chinaunix网友2009-12-13 11:40:04

linux已经有iftop实现此功能了。