需求分析

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应用之网卡流量监测的更多相关文章

  1. shell脚本 awk实现实时监控网卡流量

    一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...

  2. 统计网卡流量的两段shell脚本(使用ifconfig)

    一个很小巧的shell脚本,使用ifconfig的不间断输出来统计网卡的流量,有需要的朋友可以参考下 使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name ...

  3. shell脚本计算Linux网卡流量

    本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...

  4. shell习题第23题:检测网卡流量

    [题目要求] 写一个脚本,检测网卡流量并记录到日志,需要按照如下格式并一分钟统计一次(只需统计外网网卡,网卡名称eth0) 2019-06-07 1:11 eth0 input: 1000bps et ...

  5. Linux 查看网卡流量【转】

        我的系统式RHEL5.   在linux下,查看网卡流量的方法有很多.下面先记录几个,和他们的大概用法.已被以后之需.   一:iptraf   一个很不错的工具.RHEL5 iso自带有,我 ...

  6. Linux下监控网卡流量的软件iftop

    官网上说使用iftop需要libpcap和libcurses这两个包. 用命令查找了一下 #  rpm -qa | grep libpcap libpcap-0.9.4-15.el5 只找到了这个,缺 ...

  7. Linux查看实时网卡流量的几种方式

    Linux查看实时网卡流量的几种方式 来源  https://www.jianshu.com/p/b9e942f3682c 在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查 ...

  8. CactiEZ安装与配置-监控网卡流量

    1.1. 环境 本例CactiEZ-10.1-x86_64.iso下载地址 https://pan.baidu.com/s/1vivDJqpgtoBXRLm2D-bBTQ 密码:u12l 测试环境 服 ...

  9. 详解Linux查看实时网卡流量的几种方式(转)

    转自https://www.jb51.net/article/112965.htm 假如Keepalived有10个VIP,怎么查看每个VIP的流量呢? 这里就可以使用sar命令查看网卡流量了.前提是 ...

随机推荐

  1. Python学习之基本概念

    1.Python是一种解释型语言.Python解释器通过“一次执行一条语句”的方式执行程序的. 2.Python用空白来组织程序,不像R等用大括号. 3.# 是Python的注释符号. 4.变量是按引 ...

  2. POJ 1064 Cable master (二分答案,G++不过,C++就过了)

    题目: 这题有点坑,G++过不了,C++能过. 条件:n个数据a[],分成k段,结果精度要求两位小数. 问题:每段最长为多少? 思路:因为精度要求为两位小数,我先把所有的长度a[]*100. 我们对答 ...

  3. 使用Mapping实现的以太坊智能合约的代码

    Step 1: 创建一个基础合约 pragma solidity ^0.4.7; contract Coin { address public minter; mapping (address =&g ...

  4. BootStrap学习(三)——重写首页之导航栏和轮播图

    1.按钮 1)帮助文档:http://v3.bootcss.com/css/#buttons 2).btn-lg..btn-sm..btn-xs可以设置按钮的不同尺寸 3).active类设置按钮的激 ...

  5. Hadoop_MapReduce中Mapper类和Reduce类

    在权威指南中,有个关于处理温度的MapReduce类,具体如下: 第一部分:Map public class MaxTemperatureMapper extends MapReduceBase im ...

  6. mysql 查询格式化时间

    select DATE_FORMAT(addtime,'$m %d %Y') from tablename 输出:01 28 2019 数据库时间格式:2019-01-28 15:01:20

  7. fastJson 解析

    String object = JSON.toJSONString(obj);               ------------------obj必须序列化 JSONObject jso=JSON ...

  8. c++ 子类构造函数初始化及父类构造初始化

    我们知道,构造方法是用来初始化类对象的.如果在类中没有显式地声明构造函数,那么编译器会自动创建一个默认的构造函数:并且这个默认的构造函数仅仅在没有显式地声明构造函数的情况下才会被创建创建. 构造函数与 ...

  9. 数组名作为函数参数以及sizeof用法

    来源:https://blog.csdn.net/jay_zhouxl/article/details/51745518 int f(int *p,char *a) { printf("p[ ...

  10. wget 升级

    漏洞描述: Wget是GNU计划开发的一套用于在网络上进行下载的自由软件,是Unix/Linux系统最常用的下载工具,支持通过HTTP.HTTPS以及FTP这三个最常见的TCP/IP协议下载. Wge ...