需求分析

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. hiho 172周 - 二维树状数组模板题

    题目链接 描述 You are given an N × N matrix. At the beginning every element is 0. Write a program supporti ...

  2. 设置IE浏览器文档模式版本

    浏览器版本问题是所有开发web的程序员共同的诟病,尤其是IE浏览器,笔者上次修改公司的一个项目中出现项目是在IE9没有出来之前,而现在修改时,则发现页面上出现的表格的错乱(因为表格是通过js动态生成的 ...

  3. 找出 alter system kill session ‘sid,serial#’ kill 掉的数据库会话对应进程

    当我们使用alter system kill session ‘sid,serial#’ 在数据库中kill掉某个会话的时候,如果你观察仔细会发现v$session.paddr发生了改变,从而是的不能 ...

  4. The Node.js Event Loop, Timers, and process.nextTick() Node.js事件循环,定时器和process.nextTick()

    个人翻译 原文:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ The Node.js Event Loop, Ti ...

  5. 移动端mete设置

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...

  6. BZOJ 2865 字符串识别(后缀数组+线段树)

    很容易想到只考虑后缀长度必须为\(max(height[rk[i]],height[rk[i]+1])+1\)(即\([i,i+x-1]\)代表的串只出现过一次)然后我正着做一遍反着做一遍,再取一个\ ...

  7. JVM内存管理简单剖析

    Java是一个跨平台语言,屏蔽操作系统的差异,无需关心复杂内存管理,做到编写一次到处运行.其强大的能力源于Java Virtual Machine (虚拟机)默默的付出.代码运行在虚拟机之上,虚拟机运 ...

  8. rdesktop 脚本

    [root@Eren liwm]# cat rdesktop.sh #!/bin/bash -rdesktop -u user  192.168.122.10 -r sound:local -g 10 ...

  9. Informatica环境搭建过程中一些问题-近期项目进了新人,在搭建环境中存在一些问题,之前都处理过一直没有整理,这次接着机会,把这些常见问题处理整理出来

    一.Informatica9.5.1创建资源库出错找不到libpmora8.so 错误如下: Database driver event...Error occurred loading librar ...

  10. Swift中NSDictionaryOfVariableBindings的替代方案

    有日子没写东西了,抽点时间练练笔头子,业精于勤荒于嬉~ 近期从OC转到了Swift2,因为Swift一直没有正经学正经用,所以对这门语言的理解基本算是个球...不得不感慨苹果的动作之快.Swift还没 ...