通过shell脚本查看服务器的时时流量

Posted by

vi network.sh

#!/bin/bash

ETH=$1
ETH=${ETH:-eth0}
IP=`ifconfig $ETH|awk -F '[ :]+' '/inet addr/{print $4}'`

while true;do
        let I+=1
        NOW=`date +"%F %T"`
        TX1=`ifconfig $ETH|grep bytes|awk -F '[ :]+' '{print $9}'`
        RX1=`ifconfig $ETH|grep bytes|awk -F '[ :]+' '{print $4}'`
        sleep 1
        TX2=`ifconfig $ETH|grep bytes|awk -F '[ :]+' '{print $9}'`
        RX2=`ifconfig $ETH|grep bytes|awk -F '[ :]+' '{print $4}'`

        let TX=(TX2-TX1)/1024
        let RX=(RX2-RX1)/1024
        let TX_TOTAL+=$TX
        let RX_TOTAL+=$RX
        let TX_AVERAGE=TX_TOTAL/${I}
        let RX_AVERAGE=RX_TOTAL/${I}

        clear

        printf "%10s\t%20s\n" "Device $ETH [$IP]" "$NOW"
        echo "============================================================="
        printf "%10s\t%20s\t%20s\n" CURRENT: in:${RX}KB/s out:${TX}KB/s
        printf "%10s\t%20s\t%20s\n" AVERAGE: in:${RX_AVERAGE}KB/s out:${TX_AVERAGE}KB/s
        printf "%10s\t%20s\t%20s\n" TOTAL: in:${RX_TOTAL}KB out:${TX_TOTAL}KB
done

使用方法:

   ./network.sh eht0

Device eth0 [192.168.1.54]       2012-11-06 17:11:09

=============================================================

CURRENT:                 in:28KB/s              out:38KB/s

AVERAGE:                 in:48KB/s              out:72KB/s

TOTAL:                  in:679KB              out:1020KB

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据