345 words
2 minutes
实时查看linux网卡流量
将下列脚本保存为可执行脚本文件,比如叫traff.sh。☺️
#!/bin/bashwhile truedo eth=$1 RXpre=$(cat /proc/net/dev | grep "$eth" | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep "$eth" | tr : " " | awk '{print $10}') sleep 1 RXnext=$(cat /proc/net/dev | grep "$eth" | tr : " " | awk '{print $2}') TXnext=$(cat /proc/net/dev | grep "$eth" | tr : " " | awk '{print $10}') clear echo -e "\t RX `date +%H:%M:%S` TX" RX=$((RXnext - RXpre)) TX=$((TXnext - TXpre)) format_speed() { local value=$1 if [[ $value -lt 1024 ]]; then echo "${value}B/s" elif [[ $value -lt 1048576 ]]; then awk "BEGIN {printf \"%.2fKB/s\", $value/1024}" elif [[ $value -lt 1073741824 ]]; then awk "BEGIN {printf \"%.2fMB/s\", $value/1048576}" else awk "BEGIN {printf \"%.2fGB/s\", $value/1073741824}" fi } RX_FMT=$(format_speed $RX) TX_FMT=$(format_speed $TX) echo -e "$eth \t $RX_FMT \t $TX_FMT"done- 本脚本可自定义欲查看接口,精确到小数,并可根据流量大小灵活显示单位。
- 此脚本的采集间隔为1秒。
- 此脚本不需要额外再安装软件,可在急用情况下应付一下,比如临时想看一下是否有流量通过,大概为多少等。
- 一些流量查看软件由于计算的精确度不同,所以与此脚本显示的数值不可能一致,此脚本的显示结果与du meter对比过,相差很小。还有就是传输工具本身显示的传输速度并不准确。
用法为:
chmod +x ./traff.sh将文件改成可执行脚本。./traff.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。