Linux脚本实现网络接口对外流量的持续监控与实时报告

在Linux中,你可以使用多种工具和脚本来实时监测对外流量。下面是一个使用vnstatbash脚本的基本示例,来展示如何实现对外流量的实时监测。但请注意,实时监测通常意味着每秒或每几分钟更新一次数据,这取决于你的需求。

图片[1]_Linux脚本实现网络接口对外流量的持续监控与实时报告_知途无界
  1. 安装vnstat

vnstat是一个轻量级的网络流量监控工具,它可以收集并报告接口的网络流量数据。

sudo apt-get install vnstat  # 对于Debian/Ubuntu系统  
sudo yum install vnstat     # 对于CentOS/RHEL系统  
sudo dnf install vnstat     # 对于Fedora系统
  1. 使用vnstat进行实时监测

vnstat本身不提供实时更新的界面,但你可以使用watch命令来定期刷新其输出。

watch -n 1 vnstat -i eth0  # 假设你的网络接口是eth0,每1秒更新一次

但如果你想要一个更自定义的脚本,你可以使用ifconfigip命令结合awkbc等工具来实现。
3. 使用bash脚本进行实时监测

以下是一个简单的bash脚本示例,它使用ip命令和awk来提取特定接口的接收和发送的字节数,并计算速率(以KB/s为单位)。

#!/bin/bash  
  
# 设置要监控的接口  
INTERFACE="eth0"  
  
# 初始的接收和发送字节数  
PREV_RX_BYTES=$(ip -s link show $INTERFACE | awk '/RX:/{print $2}')  
PREV_TX_BYTES=$(ip -s link show $INTERFACE | awk '/TX:/{print $2}')  
  
while true; do  
    # 当前的接收和发送字节数  
    CUR_RX_BYTES=$(ip -s link show $INTERFACE | awk '/RX:/{print $2}')  
    CUR_TX_BYTES=$(ip -s link show $INTERFACE | awk '/TX:/{print $2}')  
  
    # 计算速率(以KB/s为单位)  
    RX_RATE=$((($(CUR_RX_BYTES - PREV_RX_BYTES) / 1024)))  
    TX_RATE=$((($(CUR_TX_BYTES - PREV_TX_BYTES) / 1024)))  
  
    # 打印速率  
    echo "Receive Rate: $RX_RATE KB/s, Transmit Rate: $TX_RATE KB/s"  
  
    # 更新之前的字节数  
    PREV_RX_BYTES=$CUR_RX_BYTES  
    PREV_TX_BYTES=$CUR_TX_BYTES  
  
    # 休眠一段时间(例如1秒)  
    sleep 1  
done

保存此脚本(例如为monitor_traffic.sh),然后给它执行权限:

chmod +x monitor_traffic.sh

然后运行它:

./monitor_traffic.sh

这将开始实时监测并打印出接收和发送的速率。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞32 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容