[转]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退出。

原文地址:linux 查看即时网速 - konglingbin - 博客园

posted @ 2023-07-28 14:27  dirgo  阅读(425)  评论(0编辑  收藏  举报