实时监控网络流量的Bash脚本实战:助力高效服务器运维
在服务器运维过程中,网络流量的实时监控至关重要。无论是部署在本地IDC,还是托管于高性能香港服务器(如香港VPS、香港云服务器或香港独立服务器),掌握流量动态都能有效提升系统稳定性与安全性。
本文将分享一个轻量级的 Bash 脚本,用于实时监控指定网卡接口的接收与发送流量,并以人性化的单位格式展示结果。这一脚本特别适合部署在远程服务器中进行网络状态观察,是运维人员不可或缺的实用工具。
一、脚本核心功能概览
该脚本实现了以下关键能力:
- 实时获取指定网卡(如
eno1
)的接收(RX)与发送(TX)数据; - 每秒动态计算流量差值;
- 自动将字节转换为KB/s、MB/s或GB/s,更直观易懂;
- 支持自动清屏更新,方便观察变化趋势。
这类脚本部署在香港VPS或香港独立服务器中使用尤为高效,不仅可用于性能监控,也能结合业务需求做带宽规划与预警配置。
二、脚本源码与实现逻辑
以下是完整脚本代码,可直接复制使用:
#!/bin/bash
# 设置接口名称(可根据实际网卡名称修改)
eth="eno1"
# 字节转换函数:将字节数转换为人类可读格式
bytes_to_human() {
local bytes=$1
if (( bytes < 1024 )); then
echo "${bytes}B"
elif (( bytes < 1048576 )); then
printf "%.2fKB" "$(bc <<< "scale=2; $bytes / 1024")"
elif (( bytes < 1073741824 )); then
printf "%.2fMB" "$(bc <<< "scale=2; $bytes / 1048576")"
else
printf "%.2fGB" "$(bc <<< "scale=2; $bytes / 1073741824")"
fi
}
# 进入循环实时监控
while true; do
RXpre=$(cat /proc/net/dev | grep "$eth:" | awk '{print $2}')
TXpre=$(cat /proc/net/dev | grep "$eth:" | awk '{print $10}')
sleep 1
RXnext=$(cat /proc/net/dev | grep "$eth:" | awk '{print $2}')
TXnext=$(cat /proc/net/dev | grep "$eth:" | awk '{print $10}')
RX=$((RXnext - RXpre))
TX=$((TXnext - TXpre))
RX_human=$(bytes_to_human $RX)
TX_human=$(bytes_to_human $TX)
clear
echo -e "\t RX `date +%k:%M:%S` TX"
echo -e "$eth \t $RX_human/s $TX_human/s"
done
三、部署与使用方法
- 创建脚本文件:
nano monitor_traffic.sh
- 粘贴代码并保存。
- 赋予执行权限:
chmod +x monitor_traffic.sh
- 运行脚本开始监控:
./monitor_traffic.sh
- 按 Ctrl+C 停止监控进程。
四、结合香港服务器部署的实用性
在多用户访问、高频数据交互、跨境服务部署等场景中,香港的网络节点优势明显。将上述流量监控脚本部署在香港服务器环境中,有如下优势:
- 带宽稳定、访问国际快速:特别适合亚太市场、跨境电商平台等高并发业务场景;
- 网络实时性保障:通过流量监控及时发现异常流量或潜在攻击;
- 便于自动化集成:脚本可作为NOC监控系统的子模块集成使用,提升自动化水平;
- 多样化服务器方案支持:从弹性可扩展的香港云服务器到独享资源的香港独立服务器,均可灵活部署。
五、总结
该 Bash 脚本提供了基础但高效的网络流量监控能力,适用于日常服务器运维,也可作为高级流量分析系统的基础模块。在实际项目中,您还可以结合 crontab 实现定时记录流量峰值,或与防火墙策略联动进行异常流控处理。
版权声明:
作者:后浪云
链接:https://www.idc.net/help/441528/
文章版权归作者所有,未经允许请勿转载。
THE END