shell编程实战之监控网卡流量


本文摘自PHP中文网,作者齐天大圣,侵删。

最近客户的网站出现卡慢现象,通过检查,出问题是原因是因为带宽吃紧,所以让客户将服务器带宽从原本的2M增加到4M的带宽,网站速度一下就提升了。那么如何监控网卡流量情况,linux有许多命令可以查看。比如iftop,sar等等。

这里,我想写一个监控网卡流量情况的脚本。统计每一分钟的网卡流量情况,输入到指定文件中。可以使用sar -n DEV 1 59查看一分钟内网卡平均流量。

此脚本的核心是获取1分钟内网卡的平均流量。我们来看看sar这个命令会输出哪些信息吧。

1

2

3

4

5

6

7

8

9

10

11

12

# sar -n DEV 1 59

Linux 4.18.0-80.11.2.el8_0.x86_64 (30gk.com)  09/20/2020  _x86_64_ (4 CPU)

11:25:25 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

11:25:26 AM      eth0     16.00     11.00      1.26      1.38      0.00      0.00      0.00      0.00

11:25:26 AM        lo     12.00     12.00      4.77      4.77      0.00      0.00      0.00      0.00

11:25:26 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

11:25:27 AM      eth0     18.00     23.00      2.98     28.85      0.00      0.00      0.00      0.00

11:25:27 AM        lo     12.00     12.00      4.77      4.77      0.00      0.00      0.00      0.00

……

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

Average:         eth0      8.56     12.59      1.07      7.05      0.00      0.00      0.00      0.00

Average:           lo     12.20     12.20      4.79      4.79      0.00      0.00      0.00      0.00

我们需要的信息是AVERAGE: eth0这行。rxkb/s表示网卡每秒接受的字节数,rxkb/s表示每秒发送的字节数,他们的单位都是kb。我们待会要将它转换为kbit/s,因为日常习惯用kbit/s表示网络带宽使用情况。

然后,我们需要过滤其他不需要的行,使用grep命令可以轻松办到。首先grep过滤掉所有不含Average的行,然后过滤不含eth0的行。

1

2

# sar -n DEV 1 59 | grep -i average | grep eth0

Average:         eth0      7.44      7.00      0.83      6.72      0.00      0.00      0.00      0.00

然后,使用awk命令过滤掉不需要的列,我们只需要第5列以及第6列信息;

1

2

# sar -n DEV 1 4 | grep -i average | grep eth0 | awk '{print $5*8"\t"$6*8}'

28.32 182.96

至此,我们已经获取到了1分钟内eth0网卡的平均输入输出流量了,该脚本的核心问题解决了。下面贴出完整的代码:

阅读剩余部分

相关阅读 >>

shell关系运算符介绍

linux默认使用的shell是什么

linux shell中的curl和wget如何使用代理ip的方法教程

linux中的shell命令如何使用

有关linux中shell内置判断语句的介绍

shell判断字符串为空的方法

如何让shell访问正在运行的docker容器

如何在shell脚本中以隐藏字符的形式输入密码

shell编程实战之监控磁盘分区的使用率

总结shell中的特殊字符

更多相关阅读请进入《shell》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...