脚本信息
创建shell脚本文件:vim NetSpeedMonitor
并赋予可执行权限:sudo chmod +x NetSpeedMonitor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#!/bin/bash echo ===DTmobile NetSpeedMonitor=== sleep 1 echo loading... sleep 1 ethn=$1 while true do RXpre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') sleep 1 RXnext=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TXnext=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') clear echo -e "\t\t\t RX \t\t TX \t\t\t TIME" RX=$((RXnext-RXpre)) TX=$((TXnext-TXpre)) if [ $RX -lt 1024 ];then RX="${RX}B/s" elif [ $RX -gt 1048576 ];then RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}') else RX=$(echo $RX | awk '{print $1/1024 "KB/s"}') fi if [ $TX -lt 1024 ];then TX="${TX}B/s" elif [[ $TX -gt 1048576 ]];then TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}') else TX=$(echo $TX | awk '{print $1/1024 "KB/s"}') fi echo -e "$ethn \t $RX $TX \t\t\t `date +%k:%M:%S` " done |
使用方法:
这个脚本只能一次性监控一个网口的速率。用ifconfig查看需要监控的网口名称:
如上图为enp2s0,所以使用:./NetSpeedMonitor enp2s0
如果没有参数的话,脚本能运行但是会没有任何数据显示。