如何检查过去 X 分钟的网络使用情况

如何检查过去 X 分钟的网络使用情况

我有一台媒体电脑(也是 LAN 上的网络测试服务器),只要它不在使用,我就想时不时地重启它。我已经使用 kodi、myth 等对服务器进行了测试(它也是 kodi 的显示器),但是,我需要测试是否有任何东西通过网络使用它(文件复制、开发网站、观看某些东西等)。

我认为最简单的方法是找出过去 3 分钟左右通过网络传输了多少数据。我如何通过 bash 脚本(由 cron 运行的 .sh 文件)执行此操作?

答案1

好的,通过使用 rx_bytes 和 tx_bytes (接收和发送的字节,也可以使用数据包或检查丢失的数据包)找到了解决方案,请参阅:http://xmodulo.com/measure-packets-per-second-throughput-high-speed-network-interface.html

剧本:

#!/bin/bash

R1=$(cat /sys/class/net/eth0/statistics/rx_bytes)
T1=$(cat /sys/class/net/eth0/statistics/tx_bytes)
sleep $test_time
R2=$(cat /sys/class/net/eth0/statistics/rx_bytes)
T2=$(cat /sys/class/net/eth0/statistics/tx_bytes)

tot=$(( (R2 + T2 - R1 - T1) / 1024 ))

echo $tot

使用示例(记得输入以秒为单位的时间):

test_time=10 ~/test.sh

这将检查 10 秒内发送/接收了多少 KB。当然,如果您只想要发送或接收的值等,您可以编辑脚本以仅包含 R 或 T。此命令可从另一个 .sh 文件或终端内、通过 SSH 等运行。

相关内容