/proc/net/dev 文件显示的数字就是网络总流量,单位是B(字节)。 可以用当前时刻的数字减去上一秒的数字来求出每秒的网络流量。单位根据实际情况显示为KB或者MB。 而实时显示,只能使用while 做死循环,而且显示结果要一直在屏幕的第一行,可以使用clear实现。
#!/bin/bash while :;do m=`cat /proc/net/dev |grep eth0 |cut -d ':' -f2 |awk '{print $1}'` sleep 1 n=`cat /proc/net/dev |grep eth0 |cut -d ':' -f2 |awk '{print $1}'` per=$[ $n - $m ] clear echo $per echo `date` if [ $per -lt 102424 ];then echo "$per B/S" elif [ $per -gt 1048576 ];then v=$[ $per/1048576 ] echo "$v M/S" else v=$[ $per/1024 ] echo "$v KB/S" fi done
写的比较简单,纯属练习使用!