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


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/bin/bash

# 监控网卡流量,并输出到日志文件中

 

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:~/bin

export LANG=en

 

# 日志存放目录

PATH_DIR=/root/netdatas/`date +%F`

# 日志文件名称

FILE_NAME=`date +%F`.log

# 监控的网卡名称

NET_NAME=eth0

  

[ -d PATH_DIR ] || mkdir -p $PATH_DIR

  

while [ 1 ];do

    date +"%H:%M" >> $PATH_DIR/$FILE_NAME

  

    netinfo=$(sar -n DEV 1 59 | grep -i average | grep $NET_NAME | \

        awk '{print $5*8":"$6*8}' )

    echo  "$NET_NAME input:$(echo $netinfo | cut -d: -f1)kbit/s" >> $PATH_DIR/$FILE_NAME

    echo "$NET_NAME output:$(echo $netinfo | cut -d: -f2)kbit/s" >> $PATH_DIR/$FILE_NAME

    echo '#########################' >> $PATH_DIR/$FILE_NAME

done

该脚本的编写非常的简单,搞清楚了如何获取1分钟内网卡流量就搞定了90%了。不过有点要注意,我服务器上的网卡名称为eth0,你的可能名称和我不一样,所以如果你要使用该脚本,需要将所有的eth0改为你服务器上的网卡名。当然,可以将网卡名称当做参数来传递给脚本,这里为了图方便就没有这么做了(主要原因是不想对输入的网卡名做校验)。

来验证下此脚本是否能正常运行。执行该脚本后,查看下日志里的内容如下:

1

2

3

4

5

6

7

8

9

10

11

12:15

eth0 input:16.64kbit/s

eth0 output:16.72kbit/s

#########################

12:16

eth0 input:16.72kbit/s

eth0 output:17.12kbit/s

#########################

12:17

eth0 input:17.92kbit/s

eth0 output:17.6kbit/s

可以看到,此脚本能正常运行。

以上就是shell编程实战之监控网卡流量的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

linux中如何利用shell判断文件或目录是否存在

如何在shell脚本中使用逻辑或&和

如何在运维过程中对shell内建命令

linux中如何运行shell程序

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

一文读懂shell编程三剑客之一的sed命令

linux运维之shell变量.md

如何从shell脚本创建二进制文件

linux中什么是shell

linux中终端与shell的概念

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



打赏

取消

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

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

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

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

评论

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