Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58876
  • 博文数量: 16
  • 博客积分: 411
  • 博客等级: 一等列兵
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-12 18:11
文章分类

全部博文(16)

文章存档

2013年(1)

2012年(14)

2010年(1)

我的朋友

分类: Python/Ruby

2012-10-08 15:25:19

目的:方便nfdump查询,通过dialog达到可以任意查询当前内2小时的流量信息

以下是script部分

 

#!/bin/bash/

#/usr/local/nfdump/bin/nfcapd -w -D -l /home/nfdump/MSR3016/ -p 9997
NFDIR=/home/nfdump/MSR3016/
DIA='/usr/bin/dialog'
NFDUMP='/usr/local/nfdump/bin/nfdump'

#需要安装dialog

############################################
cd $NFDIR
SUM=($(ls | grep nfcapd.[0-9] | cut -b 8- | sort -nr))

#查找nfdump.[0-9]并切掉前7个字符再排序,给变量SUM

############################################
M1="Choice Network Devices"
NUMDEV=1
DEVLIST="H3C MSR3016 off"
$DIA --radiolist "$M1" 10 40 $NUMDEV $DEVLIST

#选择网络设备

############################################
M2="Start Time"
NUMSTA=24
TMP1="/tmp/stalist.$$"
STALIST=$(echo ${SUM[@]:0:24} | sed 's/ / time off /g' | sed 's/$/ time off/')
$DIA --radiolist "$M2" 10 40 $NUMSTA $STALIST 2> $TMP1
STATIME=$(cat $TMP1)

#提起SUM数组中的0开始的24个,并在每个数值后加time off

############################################
declare -i x
for ((x=0; x<=24; x++))
do
        if ((${SUM[x]} > $STATIME ));then
              NSUM+=(${SUM[x]})
        fi
done

#进行比较,筛选出比$STATIME大的值给$NSUM

M3="End Time"
NUMEND=24
TMP2="/tmp/endlist.$$"
ENDLIST=$(echo ${NSUM[@]} | sed 's/ / time off /g' | sed 's/$/ time off/')

$DIA --radiolist "$M3" 10 40 $NUMEND $ENDLIST 2> $TMP2

ENDTIME=$(cat $TMP2)

rm -f "$TMP1"
rm -f "$TMP2"

############################################################
$NFDUMP -R ${NFDIR}nfcapd.$STATIME:nfcapd.$ENDTIME -n 50  \
        -o "fmt:%ts %sap -> %dap %pr %pkt %pkt " -s record/bytes | more

阅读(1226) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~