Linux 流量统计
# ifconfig | grep "RX bytes" | awk -F'[: ]+' '{sum+=$4;sum+=$9};END{print sum, sum/1024/1024/14/12/60/60}'
298734852820428 471.058
ifconfig 输出网络接口的信息,其中包括接收(RX bytes)和发送(TX bytes)的字节数。 grep "RX bytes" 从 ifconfig 的输出中筛选包含 "RX bytes" 的行。 awk -F'[: ]+' -F'[: ]+' 设置分隔符为冒号或一个或多个空格。 处理每行数据: $4:表示接收的字节数(RX bytes)。 $9:表示发送的字节数(TX bytes)。 sum+=$4; sum+=$9:将 RX 和 TX 的字节数累计到 sum。 END{print sum, sum/1024/1024/14/12/60/60} 在 awk 处理完所有行后执行 END 块: sum:输出累计的总字节数。 sum/1024/1024/14/12/60/60: 将总字节数转换为 MB:sum / 1024 / 1024。 假设统计周期是 14 天,计算每秒的平均速率: 转换为秒:14 天 × 12 小时 × 60 分钟 × 60 秒。 结果含义 sum:所有接口的接收和发送的字节总和。 sum/1024/1024/14/12/60/60:将总字节数按假定的 14 天周期计算出平均的网络流量速率(单位:MB/s)。
输出解析
-
298734852820428
这是所有网络接口的接收字节数 (RX bytes
) 和发送字节数 (TX bytes
) 的总和,单位为字节(Bytes)。 -
471.058
这是按 14 天时间周期计算的平均网络流量速率,单位为 MB/s(每秒兆字节)。