diff --git a/10-50-reverse.sh b/10-50-reverse.sh index d067131..be1a518 100755 --- a/10-50-reverse.sh +++ b/10-50-reverse.sh @@ -10,8 +10,8 @@ refresh=2000 retry=6400 expire=2419200 minimum=86400 -contactemail=franken.freifunk.net. -reverseservername=aquarius.gw.fff.community. +ContactEMail=franken.freifunk.net. +ReverseServerName=aquarius.gw.fff.community. ################################################################# @@ -40,17 +40,17 @@ mkdir -p $TempDir Serials=() for ForwardZoneFile in "${ForwardZoneFiles[@]}" do - ZoneName=$(cat $ForwardZoneFile | grep SOA | awk '{ print $1 }' | head -n 1) + ZoneName=$(sed -ne 's/\(\S\+\)\s\+IN\s\+SOA\s\+\S\+.*/\1/p' "$ForwardZoneFile") named-compilezone -o "$TempDir/$ZoneName" $ZoneName $ForwardZoneFile >/dev/null 2>&1 - serial=$(cat "$TempDir/$ZoneName" | grep SOA | awk '{ print $7 }' | head -n 1) + serial=$(sed -e '/\S\+\s\+IN\s\+SOA\s/,$!d;:a;s/;.*$//g;:a;N;$!ba;s/\n//g;s/\S\+\s\+IN\s\+SOA\s\+\S\+\s\+\S\+\s\+(\?\s\+\([0-9]*\).*/\1/' "$TempDir/$ZoneName" ) Serials+=( "$serial" ) done Serials=( $( for i in ${Serials[@]}; do echo "$i"; done | sort -rn ) ) serial=${Serials[0]} -echo "$DomainZone $TTL IN SOA $reverseservername $contactemail $serial $refresh $retry $expire $minimum" > "$TempDir/$DomainZone" -echo "$DomainZone $TTL IN NS $reverseservername" >> "$TempDir/$DomainZone" +echo "$DomainZone $TTL IN SOA $ReverseServerName $ContactEMail $serial $refresh $retry $expire $minimum" > "$TempDir/$DomainZone" +echo "$DomainZone $TTL IN NS $ReverseServerName" >> "$TempDir/$DomainZone" for ForwardZoneFile in $(ls $TempDir) do Hosts=($(cat "$TempDir/$ForwardZoneFile" | grep -v SOA | awk '{ print $1 }'))