中兴M6000-18S设备配置文件过滤,采集此类设备的vbui大段配置
此脚本尚未完成,存在问题如下:
1、文件内循环结束出现问题,导致出现异常输出。
2、IP地址提取部分尚未编写完成。
3、vbui行号取值出现重复,重复内容为不需要内容。
完成部分如下:
1、可以正常提取大段备注名
2、可以正常提取大段VPN号
脚本如下:
#!/bin/bash
#中兴M6000-18S设备配置文件过滤
#1 interface vbui1
#2 description XXX
#3 ip vrf forwarding XXX
#4 ip address X.X.38.1 255.255.255.0
#5 $
PWD=`cd "$( dirname "$0" )" && pwd`
ZTLIST=(`cat $PWD/ztmselist`)
ZTLISTSUM=${#ZTLIST[@]}
COUNTER1=0
#自定义函数获取vbui号
shvbui(){
VBWC=`echo "$CONTENT" | grep "interface vbui" |wc -l`
if [ $VBWC -ne 0 ];then
VBS=`echo "$CONTENT" | awk '{print $3}'`
echo $VBS
fi
}
#自定义函数获取备注
shdp(){
DPWC=`echo "$CONTENT" | grep "description" |wc -l`
if [ $DPWC -ne 0 ];then
DPS=`echo "$CONTENT" | awk '{print $3}'`
echo $DPS
fi
}
#自定义函数获取VPN号
shvpn(){
VPNWC=`echo "$CONTENT" | grep "ip vrf forwarding" |wc -l`
if [ $VPNWC -ne 0 ];then
VPNS=`echo "$CONTENT" | awk '{print $5}'`
echo $VPNS
fi
}
#自定义函数调用IP掩码
ship(){
#IP能够存在多个,死循环自动生成变量,验证变量是否存在,变量总数大于2,在每行填充其他函数获取的值
IPWC=`echo "$CONTENT" | grep "ip address" |wc -l`
IPSUM=
#尚未完成编写
while true
do
if [ $IPWC -ne 0 ];then
IPS=`echo "$CONTENT" | awk '{print $5}'`
echo $IPS
fi
done
}
while true
do
#获取vbui起始行号(此处获取出现问题)
SED=(`cat -n ${ZTLIST[$COUNTER1]}|grep "^interface vbui"|awk '{print $1}'`)
SEDSUM=${#SED[@]}
COUNTER2=0
while true
do
SED1=${SED[$COUNTER2]}
#开始对每一个vbui进行处理
while true
do
#获取实质内容
#CONTENT=`cat -n ${ZTLIST[$COUNTER1]}|sed -n ${SED[$COUNTER2]}p `
CONTENT=`cat -n ${ZTLIST[$COUNTER1]}|sed -n ${SED1}p `
#自定义函数处理数据
#测试输出效果,尚未进行汇总成表格,此处测试通过,因循环停止出现问题导致输出存在问题
shvbui $CONTENT
shdp $CONTENT
shvpn $CONTENT
IF1=`cat ${ZTLIST[$COUNTER1]}|sed -n ${SED1}p | sed 's/[ \t]*//g'`
if [ "$IF1" == '$' ];then
break
fi
SED1=$((SED1+1))
#此处结束循环出现问题
done
#整理数据,成csv格式
#echo "XXX" >> XXX.csv
if [ $COUNTER2 -eq $SEDSUM ];then
break
fi
COUNTER2=$((COUNTER2+1))
done
if [ $COUNTER1 -eq $UPTIMESUM ];then
#退出死循环
break
fi
COUNTER1=$((COUNTER1+1))
done
发表评论