Linux

通過 /sys/class/net 獲取目前網路使用率

  • August 19, 2020

玩弄一些低級功能來監控我的系統統計資訊。

我想以與獲取 cpu temp 相同的方式獲取目前網路使用率

cat /sys/class/thermal/thermal_zone0/temp

或風扇速度

cat /sys/class/hwmon/hwmon6/fan1_input

看著

/sys/class/net/my_network_adapter/

我沒有找到查看實際頻寬消耗的方法,rx_bytes 只是給出了下載的數據總量。

要獲得 B/s 的速率,只需要你的 shell:只需每秒讀取 rx_bytes 文件並將目前值與一秒前的值進行比較。

rx1=$(cat /sys/class/net/wlp3s0/statistics/rx_bytes)
while sleep 1; do
   rx2=$(cat /sys/class/net/wlp3s0/statistics/rx_bytes)
   printf 'Download rate: %s B/s\n' "$((rx2-rx1))"
   rx1=$rx2
done

當然,用wlp3s0你要監控的介面代替。

Linux 核心不會跟踪時間網路介面統計資訊——您必須自己計算這些值。

有多種實用程序和應用程序可以為您執行此操作,包括 Gnome System Monitor(如果您是 Gnome 使用者),然後 KDE 有 KSysGuard/Plasma Network Monitor/KNemo 和許多其他工具。

引用自:https://unix.stackexchange.com/questions/604964