Shell应用之网卡流量监测
需求分析
1)按固定时间监测一次网卡流量
2)当网卡流量为0时重启网卡
一、网卡流量查询
sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装。
这里我们利用sar 命令中的网络监控功能
sar -n #统计网络信息
sar -n选项使用6个不同的选项:DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6 ,DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。
sar -n DEV 1 1: 每间隔1秒统计一次,总计统计1次,其中的average是在多次统计后的平均值
[root@mail sbin]# sar -n DEV 1 1
Linux 3.10.0-862.el7.x86_64 (mail.rhcc.com) 11/08/18 _x86_64_ (1 CPU)
21:33:15 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21:33:16 ens37 1.01 0.00 0.06 0.00 0.00 0.00 0.00
21:33:16 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:33:16 virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:33:16 virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:33:16 ens33 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: ens37 1.01 0.00 0.06 0.00 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens33 0.00 0.00 0.00 0.00 0.00 0.00 0.00
二、网卡的查询和重启
#>查询的命令有
397 ip a
398 ifconfig
399 nmcli device show
#>网卡重启
402 ifdown ens37 && ifup ens37
405 ifdown ens37 ; ifup ens37
网络网卡的配置路径在
[root@mail sbin]# cd /etc/sysconfig/network-scripts/
更改完配置记得重启服务
三、抓包分析
通常网卡流量异常时都需要查看分析,往往抓包就是最直观的查看方式
[root@mail network-scripts]# tcpdump -nn -i ens37 -c 100
>加上-w 参数可以将抓取的内容保存到固定的.cap文件中,这个文件是可以用
Windows的wireshark工具查看的,同样tcpdump -r *.cap 也可以查看。
四、案例分析
#!/bin/bash
LANG=C #>设置英文的的环境
if [ ! rpm -q sysstat &> /dev/null ]
then
yum install -y sysstat
fi #>判断sar是否可执行
sar -n DEV 1 10 |grep 'ens37' > /tmp/ens37_sar.log #>监测网卡流量重定向
net_in=`grep '^Average:' /tmp/ens37_sar.log|awk '{print $5}'` #>分析入流量
net_out=`grep '^Average:' /tmp/ens37_sar.log|awk '{print $6}'` #>分析出流量
if [ $net_in == "0" -a $net_out == "0" ]
then
echo "`date` ens37 Flow anomaly" >> /tmp/net.log
ifdown ens37 && ifup ens37
fi #>判断出入的流量是否为0 ,为0则重启网卡
五、定时监测的实现
[root@mail sbin]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@mail sbin]# crontab -l
30 * * * * /bin/sh /usr/local/sbin/tp.sh
-------------END---------------
Shell应用之网卡流量监测的更多相关文章
- shell脚本 awk实现实时监控网卡流量
一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...
- 统计网卡流量的两段shell脚本(使用ifconfig)
一个很小巧的shell脚本,使用ifconfig的不间断输出来统计网卡的流量,有需要的朋友可以参考下 使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name ...
- shell脚本计算Linux网卡流量
本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...
- shell习题第23题:检测网卡流量
[题目要求] 写一个脚本,检测网卡流量并记录到日志,需要按照如下格式并一分钟统计一次(只需统计外网网卡,网卡名称eth0) 2019-06-07 1:11 eth0 input: 1000bps et ...
- Linux 查看网卡流量【转】
我的系统式RHEL5. 在linux下,查看网卡流量的方法有很多.下面先记录几个,和他们的大概用法.已被以后之需. 一:iptraf 一个很不错的工具.RHEL5 iso自带有,我 ...
- Linux下监控网卡流量的软件iftop
官网上说使用iftop需要libpcap和libcurses这两个包. 用命令查找了一下 # rpm -qa | grep libpcap libpcap-0.9.4-15.el5 只找到了这个,缺 ...
- Linux查看实时网卡流量的几种方式
Linux查看实时网卡流量的几种方式 来源 https://www.jianshu.com/p/b9e942f3682c 在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查 ...
- CactiEZ安装与配置-监控网卡流量
1.1. 环境 本例CactiEZ-10.1-x86_64.iso下载地址 https://pan.baidu.com/s/1vivDJqpgtoBXRLm2D-bBTQ 密码:u12l 测试环境 服 ...
- 详解Linux查看实时网卡流量的几种方式(转)
转自https://www.jb51.net/article/112965.htm 假如Keepalived有10个VIP,怎么查看每个VIP的流量呢? 这里就可以使用sar命令查看网卡流量了.前提是 ...
随机推荐
- POJ 2502 Dijkstra OR spfa
思路: 建完了图就是模板水题了 -.. 但是建图很坑. 首先要把出发点向地铁站&终点 连一条边 地铁站之间要连无向边 地铁站向终点连一条边 以上的边权要*0.006 两个地铁站之间要连无向边 ...
- 关于javascript 与iOS交互的简单使用
关于导入 JavaScriptCore 这个就不说了 js交互我们首先用到webView与webView的代理 基本上是很简单,,不过后台10分的坑 以下是代码 在webView的加载完成里面 fun ...
- JavaScript在不同环境下的全局对象
Node.js 环境下,全局的对象是 global. 浏览器下 window === self 而不是 global,今天才发现的,我惊呆了!
- How Javascript works (Javascript工作原理) (九) 网页消息推送通知机制
个人总结: 1.介绍了网页消息推送通知机制 全文地址:https://github.com/Troland/how-javascript-works 这是 JavaScript 工作原理的第九章. 现 ...
- ajax同时提交表单且包含文件
说明一下:FormData对象是html5的一个对象,目前的一些主流的浏览器都已经兼容.ie8暂时不支持,不支持FormData的,可以使用方法二,下面会介绍.接着说FormData,它是一个html ...
- [NOIP2012提高组]疫情控制
题目:洛谷P1084.codevs1218.Vijos P1783. 题目大意:有一棵n个节点的,根为1的带权树和m支军队.每支军队可以在一个点上停下,那么从1开始就不能经过这个点了.现在有m支军队已 ...
- caioj 1204 Catalan数(模板)
题目中对卡特兰数的总结很不错 以下copy自题目 Catalan数列:1,1,2,5,14,42,(前面几个要背) 即 h(0)=1,h(1)=1,h(2)=2,h(3)=5...公式:h(n)=C( ...
- 紫书 例题8-9 UVa 1451 (数形结合)
这道题用了数形结合, 真的牛逼, 完全想到不到还可以这么做 因为题目求的是平均值, 是总数除以个数, 这个时候就可以联系 到斜率, 也就是说转化为给你一堆点, 让你求两点之间的最大斜率 要做两个处理 ...
- 面试题——ArrayList和LinkedList的区别
List概括 先回顾一下List在Collection的框架图: 从图中可以看出: List是一个接口,他继承Collection接口,代表有序的队列. AbstractList是一个抽象类, ,它继 ...
- js 判断是否滚动到底部
$(window).scroll(function(){ var scrollTop = $(this).scrollTop(); //scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置 ...