当前第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》频道 >>
转载请注明出处:木庄网络博客 » shell编程实战之监控网卡流量