[Bytes,Network,eth0,网络数据,Linux]如何从Linux系统中获取带宽、流量网络数据

简介:   Linux中的网络数据提取  在Linux系统中我们可以从/proc 目录里来获取相应的数据并进行处理。  让我们来看下网络相关的/proc/net/dev

  Linux中的网络数据提取

  在Linux系统中我们可以从/proc 目录里来获取相应的数据并进行处理。

  让我们来看下网络相关的/proc/net/dev

  cat /proc/net/dev

  Inter-| Receive | Transmit

  face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

  eth0: 313568232649602 558303341870 0 0 0 0 0 0 227503770878768 476857419543 0 0 0 0 0 0

  lo: 440905770 5512243 0 0 0 0 0 0 440905770 5512243 0 0 0 0 0 0

  这个文件是本机所有网卡的数据记录。

  从标题可以看出,第一列是网卡名称,第二列是入方向字节数(流量),第三列是入方向数据包数量,第四列是入方向错误包数,第10列是出方向字节数(流量)

  脚本计算带宽和流量

  有了数据,我们就可以写个shell脚本来获取买二手域名带宽和流量数据了

  脚本getnettraffic.sh

  #!/bin/bash

  DATE1=date --utc

  RX1=cat /proc/net/dev | grep eth0 |awk '{print $2}'

  TX1=cat /proc/net/dev | grep eth0 |awk '{print $10}'

  sleep60

  DATE2=date --utc

  RX2=cat /proc/net/dev | grep eth0 |awk '{print $2}'

  TX2=cat /proc/net/dev | grep eth0 |awk '{print $10}'

  RX=$(( $RX2-$RX1 ))

  TX=$(( $TX2-$TX1 ))

  RXBAND=$(($RX*8/60/1024/1024))

  TXBAND=$(($TX*8/60/1024/1024))

  echo "time Range $DATE1 - $DATE2"

  echo "Network In Bytes: $RX Bytes"

  echo "Network Out Bytes: $TX Bytes"

  echo "Network In BW: $RXBAND Mbps"

  echo "Network Out BW: $TXBAND Mbps"

  执行结果:

  time Range Thu Jun 4 05:38:06 UTC 2021 - Thu Jun 4 05:39:06 UTC 2021

  Network In Bytes: 628578266 Bytes

  Network Out Bytes: 465529561 Bytes

  Network In BW: 79 Mbps

  Network Out BW: 59 Mbps

  扩展

  我们已经知道 /proc/net/dev 这个文件存储了主机上的网络数据。但如果我想看某个进程的网络数据怎么办?

  同样的Linux也提供了 /proc/$PID/net/dev 这个文件来记录进程的网络数据。

  如果主机上运行了虚拟机或者docker容器,也可以使用这种方法来获取网络数据。

目录
相关文章
|
3月前
|
Ubuntu 网络协议 网络安全
解决Ubuntu系统的网络连接问题
以上步骤通常可以帮助解决大多数Ubuntu系统的网络连接问题。如果问题仍然存在,可能需要更深入的诊断,或考虑联系网络管理员或专业技术人员。
748 18
|
3月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
3月前
|
监控 安全 网络协议
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
433 1
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
|
4月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
307 2
|
3月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
185 0
|
4月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
143 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
3月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
414 0
|
Linux Shell
【Linux网络配置实战】服务器Network静态路由配置
【Linux网络配置实战】服务器Network静态路由配置
666 1
|
Linux
Linux系统之Network静态路由配置
Linux系统之Network静态路由配置
558 0
Linux系统之Network静态路由配置