[转]Linux查看实时网速
---------------------------23-08-03更新----------------------------------------------------------
最近装了一个 htop 来代替 传统top 当任务管理器,发现它同时也可以设置查看 网速和磁盘读写,方法是按F2 出现设置菜单 :第一列 选第一项 Meters,右边第四列有 可以添加的监控项,可以选择添加到监控的左边 或右边
-------------------------------------------------------------------------------------------------------
单独为这个小功能安装一个软件觉得不大值当,想找一个debian发行版自带的,找了挺久,终于找到了:
sar -n DEV 1 100
1代表一秒统计并显示一次
100代表统计一百次
使用ntop等工具,就更方便简单了,不过这个更灵活
P.S.
sar在sysstat包
原文地址:Linux查看网络即时网速 - eshizhan - 博客园
当然也可以写个脚本,通过读取/proc/net/dev文件里的数据,进行计算,有一次体现了Linux中"一切皆文件"的思想:
1 #!/bin/bash 2 3 ethn=$1 4 5 while true 6 do 7 RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') 8 TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') 9 sleep 1 10 RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') 11 TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') 12 13 clear 14 echo -e "\t RX `date +%k:%M:%S` TX" 15 16 RX=$((${RX_next}-${RX_pre})) 17 TX=$((${TX_next}-${TX_pre})) 18 19 if [[ $RX -lt 1024 ]];then 20 RX="${RX}B/s" 21 elif [[ $RX -gt 1048576 ]];then 22 RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}') 23 else 24 RX=$(echo $RX | awk '{print $1/1024 "KB/s"}') 25 fi 26 27 if [[ $TX -lt 1024 ]];then 28 TX="${TX}B/s" 29 elif [[ $TX -gt 1048576 ]];then 30 TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}') 31 else 32 TX=$(echo $TX | awk '{print $1/1024 "KB/s"}') 33 fi 34 35 echo -e "$ethn \t $RX $TX " 36 37 done
此脚本不需要额外再安装软件,并且可自定义欲查看接口,精确到小数,可根据流量大小灵活显示单位,默认采集间隔为1秒。
用法为:
1、将脚本保存为可执行脚本文件,比如叫net.sh。
2、chmod +x ./net.sh 将文件改成可执行脚本。
3、sh net.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。