流量监控脚本

公司有台服务器每天晚上流量很高,但是不知道确定是到哪个IP的流量

把改脚本定时到晚上执行

 1 #!/bin/sh
 2 nic=‘em1‘
 3 myFile=$nic‘monitor‘
 4 #iftop -P -n -N -t -B -L100 -s10 -i $nic | grep -Ev ‘Listening| Host|Total|total‘ | sed -e ‘s/=>//g‘ -e ‘s/<=//g‘ | grep -Ev ‘=|-‘ | sed -e ‘s/ [0-9]\{1,3\} //g‘ | sort -t‘.‘ -k1,1n -k2,2n -k3,3n -k4,4n > $nic
 5 if [ ! -f "$myFile" ];
 6 then
 7     touch $myFile
 8 fi
 9 function KMG ()
10 {
11         MB=`echo $1 |grep -Eo ‘KB|MB|GB|B‘`
12         NUM=`echo $1 |sed -e ‘s/K\|G\|M\|B//g‘`
13         if [ "$MB"x = "KB"x ];then
14             z=`echo $NUM | awk ‘{printf ("%.2f\n",$1 *1024)}‘`
15         elif [ "$MB"x = "MB"x ];then
16             z=`echo $NUM | awk ‘{printf ("%.2f\n",$1 *1024*1024)}‘`
17         elif [ "$MB"x = "GB"x ];then
18             z=`echo $NUM | awk ‘{printf ("%.2f\n",$1 *1024*1024*1024)}‘`
19         else
20             z=`echo $NUM`
21         fi
22
23         echo $z
24
25 }
26 while true
27 do
28
29     iftop -P -n -N -t -B -L1000 -s10 -i $nic | grep -Ev ‘Listening| Host|Total|total‘ | sed -e ‘s/=>//g‘ -e ‘s/<=//g‘ | grep -Ev ‘=|-‘ | sed -e ‘s/ [0-9]\{1,3\} //g‘ | sort -t‘.‘ -k1,1n -k2,2n -k3,3n -k4,4n > $nic && echo `date "+%Y-%m-%d %H:%M:%S"`
30     ip=`cat $nic | awk ‘{print $1}‘`
31     for i in ${ip[@]}
32     do
33             #iftop获取到的当前值,并判断是否有冒号(没有冒号会导致将有冒号的值也会计算)
34             t=`echo $i | grep -Eo ‘:‘`
35             if [ "$t"x = ":"x ];then
36                 B=`grep -w $i $nic | awk ‘{print $5}‘`
37                 #echo "1" $i $B
38             else
39                 B=`grep -w $i $nic | grep -v ‘:‘ |awk ‘{print $5}‘`
40                 #echo "2" $i $B
41             fi
42
43             #循环当前的值
44             for flow in ${B[@]}
45             do
46                 A=`KMG $flow`
47
48                 #判断是否有冒号
49
50                 if [ "$t"x = ":"x ];then
51                     #判断是否已经存在值,不存在直接写入
52                     #echo "1" $i $A
53                     if grep -wq $i $myFile;then
54                         KMGNUM=`grep -w $i $myFile | awk ‘{printf ("%.2f\n",$2 + A)}‘ A="$A"`
55                         #echo ‘1‘ `grep $i $myFile`
56                         sed -i "/$i/d" $myFile && echo $i $KMGNUM >> $myFile
57                         #echo ‘2‘ `grep $i $myFile`
58                         #echo $i $KMGNUM
59                         #echo "A" $i $A
60                     else
61                         echo $i $A >> $myFile #&&echo "B" $i $A
62                     fi
63                 else
64                     #判断是否已经存在值,不存在直接写入
65                     #echo "2" $i $A
66                     if grep $i $myFile | awk ‘{print $1}‘ | grep -v ‘:‘ | grep -q $i;then
67                         KMGNUM=`grep -w $i $myFile | grep -v ‘:‘ | awk ‘{printf ("%.2f\n",$2 + A)}‘ A="$A"`
68                         #echo ‘1‘ `grep $i $myFile| grep -v ‘:‘`
69                         sed -i "/$i /d" $myFile && echo $i $KMGNUM >> $myFile
70                         #echo ‘2‘ `grep $i $myFile| grep -v ‘:‘`
71                         #echo $i $KMGNUM
72                         #echo "A" $i $A
73                     else
74                         echo $i $A >> $myFile #&& echo "B" $i $A
75                         #echo $i $A
76                     fi
77                 fi
78             done
79         done
80 done
81
82 

使用方法

cat *monitor | sort -t ‘ ‘ -k2.1nr | sed -n ‘1,10p‘ | awk ‘{print $1,$2 /1024/1024 }‘

原文地址:https://www.cnblogs.com/cainiaoit/p/8580388.html

时间: 2024-08-30 07:24:17

流量监控脚本的相关文章

linux系统CPU,内存,磁盘,网络流量监控脚本

前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat /proc/loadavg 从系统启动开始到当前累积时刻 4, #uptime 系统运行多长时间 5, #mpstat CPU的一些统计信息 6, # 一,linux系统CPU,内存,磁盘,网络流量监控脚本 [作者:佚名来源:不详时间:2010-7-6 [我来说两句大中小] cme.sh网络流量监

zabbix自定义网卡流量监控脚本and解决图形字体方块问题

1.  在客户端修改配置文件  /etc/zabbix/zabbix_agentd.conf需要改动两个地方:(1)  UnsafeUserParameters=1(2) UserParameter=my.net.if[*],/usr/local/sbin/zabbix/net.sh $1 $2   //其中UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加[*],这是固定写法,如果脚本压根就没有什么参数,那么这个[*]就省了.逗号后面就

kafka的流量监控脚本

kafka指定topic每分钟接收到的数据总量监控 需求:获取kafka每分钟接收到的数据总量,并以 时间戳-topicName-flow的格式存入Mysql 设计思路: 1.得到kafka当前时间点的sum(logsize),并存入指定的file文件. 2.一分钟后再次执行脚本,得到即时的sum(logsize),同时读取file文件里的数字x,sum(logsize)-x即为一分钟内kafka指定topic的flow(流量). 3.将获取到的flow存入mysql,同时将file文件中的数字

网卡流量监控脚本

#!/bin/bash while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') sleep 1 RXnext=$(cat /proc/net/dev | grep $eth | t

网卡流量监控脚本 ( Shell )

#!/bin/bash # Traffic Monitor # author: Xiao Guaishou get_traffic_info(){ recv=`cat /proc/net/dev | awk -F '[: ]+' '/'"$dev"'/{print $3}'` sent=`cat /proc/net/dev | awk -F '[: ]+' '/'"$dev"'/{print $11}'` } get_traffic_rate(){ In=`echo

网卡流量监控脚本 ( Python )

#!/usr/bin/env python # coding: utf-8 # author: Xiao Guaishou try: import psutil except ImportError: print('Error: psutil module not found!') exit() def get_key(): key_info = psutil.net_io_counters(pernic=True).keys() recv = {} sent = {} for key in k

几个常用的Linux监控脚本

几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network#Mike.Xuwhile : ; dotime='date +%m"-"%d" "%k":"%M'day='date +%m"-"%d'rx_before='ifconfig eth0|sed -n "8"p|

几个常用的Linux操作系统监控脚本

本文介绍了几个常用的Linux监控脚本,可以实现主机网卡流量.系统状况.主机磁盘空间.CPU和内存的使用情况等方面的自动监控与报警.根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 最近时不时有互联网的朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 下面是我常用的几个主机监控的脚本,大家可以根据自己的情况再进

python 写一个类似于top的监控脚本

最近老板给提出一个需要,项目需求大致如下:  1.用树莓派作为网关,底层接多个ZigBee传感节点,网关把ZigBee传感节点采集到的信息通过串口接收汇总,并且发送给上层的HTTP Server: 2.要有数据的反向控制通道,即网关与Server间要保持长连接,采用websocket实现,以此实现给ZigBee传感节点发送控制命令,来实现对ZigBee节点的远程配置操作: 3.树莓派网关本身要与上层Server实现交互,上层Server能够看到网关实时的cpu.内存以及网络上行与下行的带宽等等: