45 lines
913 B
Bash
Executable File
45 lines
913 B
Bash
Executable File
#!/bin/bash
|
|
|
|
HOSTNAME=/home/rancid/var/rancid/network/configs/$1
|
|
#IFS=
|
|
|
|
USER=$(egrep "access-list AnyConnect_" $HOSTNAME | awk '{print $2}' | grep -v "Client_Local_Print" | uniq)
|
|
for ACLNAME in $USER
|
|
do
|
|
IFS=
|
|
echo
|
|
echo $ACLNAME
|
|
ACLS=$(egrep "access-list $ACLNAME" $HOSTNAME)
|
|
echo $ACLS
|
|
|
|
echo $ACLS | while read -r ACES
|
|
do
|
|
echo $ACES
|
|
echo "---"
|
|
OBJS=$(perl -e '
|
|
($c) = $ARGV[0] =~ /access-list [^ ]* extended deny|permit ip|udp|tcp any|object[^ ]* ([^ \n]*)(.*)/;
|
|
print $c;
|
|
' "$ACES"
|
|
)
|
|
|
|
unset IFS
|
|
for OBJN in `echo "$OBJS"`
|
|
do
|
|
echo $OBJN
|
|
egrep -A 10 "$OBJN$" $HOSTNAME | egrep -m2 -B 100 "^[ ]" | tail -n +2
|
|
L=`egrep -A 10 "$OBJN$" $HOSTNAME | egrep -m2 -B 100 "^[ ]" | tail -n +2`
|
|
#echo $L
|
|
if [[ "$L" =~ "group" ]]
|
|
then
|
|
LO=$(perl -e '
|
|
($c) = $ARGV[0] =~ /([^ ]*)$/;
|
|
print $c;
|
|
' "$L"
|
|
)
|
|
egrep -A 10 "$LO$" $HOSTNAME | egrep -m2 -B 100 "^[ ]" | tail -n +2 | ts ""
|
|
fi
|
|
done
|
|
done
|
|
|
|
done
|