目的:方便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