使用一些低级函数来监控我的系统统计数据。
我想以与获取 cpu 温度相同的方式获取当前网络利用率
cat /sys/class/thermal/thermal_zone0/temp
或风扇速度
cat /sys/class/hwmon/hwmon6/fan1_input
看着
/sys/class/net/my_network_adapter/
我没有找到查看实际带宽消耗的方法,rx_bytes 只是给出下载的数据总量。
答案1
要获得 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
为你想要监控的接口。
答案2
Linux 内核不跟踪临时网络接口统计信息 - 您必须自己计算这些值。
有多种实用程序和应用程序可以为您执行此操作,包括 Gnome System Monitor(如果您是 Gnome 用户),那么 KDE 有 KSysGuard/Plasma Network Monitor/KNemo 等。