Support of ignoring hostnames conatining -alt or -neu.

This commit is contained in:
Christoph 2021-05-27 21:04:51 +02:00
parent 9b1825c714
commit 8a00a00ace

View File

@ -364,18 +364,20 @@ echo -e "\033[32m--\033[m"
echo "" echo ""
echo "Ignore Hostnames containing \"-alt\" (as ww-alt.oopen.de or d-alt.mx.oopen.de)" echo "Ignore Hostnames containing \"-alt\" (as ww-alt.oopen.de or d-alt.mx.oopen.de)"
echo "" echo ""
echo " Type 'return' for the yellow highlighted one.."
echo "" echo ""
OK= OK=
IGNORE_ALT_HOSTNAMES=false IGNORE_ALT_HOSTNAMES=false
while [ "$OK" != "yes" -o "$OK" != "no" ] ; do while [ "$OK" != "yes" -o "$OK" != "no" ] ; do
echononl "Ignore Hostnames containing \"-alt\"? [yes/no]: " echononl "Ignore Hostnames containing \"-alt\"? [\033[33m\033[1myes\033[m/no]: "
read OK read OK
## - To lower case ## - To lower case
OK=${OK,,} OK=${OK,,}
if [ "X$OK" = "X" ]; then if [ "X$OK" = "X" ]; then
echo -e "\n\t\033[33m\033[1mAn entry is required!\033[m\n" OK='yes'
OK="" #echo -e "\n\t\033[33m\033[1mAn entry is required!\033[m\n"
continue #OK=""
#continue
fi fi
if [ "$OK" = "yes" -o "$OK" = "no" ] ; then if [ "$OK" = "yes" -o "$OK" = "no" ] ; then
break break
@ -474,25 +476,25 @@ echo ""
echo "" echo ""
if $_set_ipv4 ; then if $_set_ipv4 ; then
echo "Old IPv4 Address..................: $IPv4_ADDRESS_OLD" echo "Old IPv4 Address...........................: $IPv4_ADDRESS_OLD"
echo "New IPv4 Address..................: $IPv4_ADDRESS_NEW" echo "New IPv4 Address...........................: $IPv4_ADDRESS_NEW"
else else
echo -e "IPv4 Address(es)..................: \033[33mNone\033[m" echo -e "IPv4 Address(es)...........................: \033[33mNone\033[m"
fi fi
echo "" echo ""
if $_set_ipv6 ; then if $_set_ipv6 ; then
echo "Old IPv6 Address..................: $IPv6_ADDRESS_OLD" echo "Old IPv6 Address...........................: $IPv6_ADDRESS_OLD"
echo "New IPv6 Address..................: $IPv6_ADDRESS_NEW" echo "New IPv6 Address...........................: $IPv6_ADDRESS_NEW"
else else
echo -e "IPv6 Address(es)..................: \033[33mNone\033[m" echo -e "IPv6 Address(es)........................: \033[33mNone\033[m"
fi fi
echo "" echo ""
echo "Ignore hostnames containing \"-alt\".: $IGNORE_ALT_HOSTNAMES" echo "Ignore hostnames containing \"-alt\"/\"-neu\"..: $IGNORE_ALT_HOSTNAMES"
echo "" echo ""
echo "Bind Configuration Directory......: $CONF_FILE_DIR" echo "Bind Configuration Directory...............: $CONF_FILE_DIR"
echo "Zones Declaration File............: $ZONES_DECLARATION_FILE" echo "Zones Declaration File.....................: $ZONES_DECLARATION_FILE"
echo "Zone File Directory (master)......: $ZONE_FILE_MASTER_DIR" echo "Zone File Directory (master)...............: $ZONE_FILE_MASTER_DIR"
#echo "Zone File Suffix..................: $ZONE_FILE_SUFFIX" #echo "Zone File Suffix...........................: $ZONE_FILE_SUFFIX"
echo "" echo ""
OK= OK=
@ -623,60 +625,93 @@ for _val in ${zonefiles_arr[@]} ; do
echononl "\t Set new IPv4 address ($IPv4_ADDRESS_NEW).." echononl "\t Set new IPv4 address ($IPv4_ADDRESS_NEW).."
_replaced=false _replaced=false
_failed=false
if grep -e "IN\s*A\s*$IPv4_ADDRESS_OLD" $zone_file > /dev/null 2>&1 ; then if grep -e "IN\s*A\s*$IPv4_ADDRESS_OLD" $zone_file > /dev/null 2>&1 ; then
perl -i -n -p -e "s#IN\s+A\s+$IPv4_ADDRESS_OLD#IN A $IPv4_ADDRESS_NEW#" $zone_file
if [ "$?" = "0" ]; then if $IGNORE_ALT_HOSTNAMES ; then
echo_ok
_replaced=true perl -i -n -p -e "s#^(.+(-alt).*)\s+IN\s+A\s+$IPv4_ADDRESS_OLD#\1 IN A 888.888.888.888#" $zone_file > /dev/null 2>&1
else if [[ $? -gt 0 ]]; then
_failed=true
fi
perl -i -n -p -e "s#^(.+(-neu).*)\s+IN\s+A\s+$IPv4_ADDRESS_OLD#\1 IN A 888.888.888.888#" $zone_file > /dev/null 2>&1
if [[ $? -gt 0 ]]; then
_failed=true
fi
fi
perl -i -n -p -e "s#IN\s+A\s+$IPv4_ADDRESS_OLD#IN A $IPv4_ADDRESS_NEW#" $zone_file > /dev/null 2>&1
if [[ $? -gt 0 ]]; then
_failed=true
fi
if $IGNORE_ALT_HOSTNAMES ; then
perl -i -n -p -e "s#IN\s+A\s+888.888.888.888#IN A $IPv4_ADDRESS_OLD#" $zone_file > /dev/null 2>&1
if [[ $? -gt 0 ]]; then
_failed=true
fi
fi
if $_failed ; then
echo_failed echo_failed
error "Replacing $IPv4_ADDRESS_OLD with $IPv4_ADDRESS_NEW in zone file \"$zone_file\" failed!" error "Replacing $IPv4_ADDRESS_OLD with $IPv4_ADDRESS_NEW in zone file \"$zone_file\" failed!"
else
echo_ok
_replaced=true
fi fi
else else
echo_skipped echo_skipped
fi fi
if $_replaced && $IGNORE_ALT_HOSTNAMES ; then
echononl "\t Setting back hostnames containing \"-alt\".."
perl -i -n -p -e "s#^(.+(-alt).*)\s+IN\s+A\s+$IPv4_ADDRESS_NEW#\1 IN A $IPv4_ADDRESS_OLD#" $zone_file > /dev/null 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Setting back hostnames containing \"-alt\" to $IPv4_ADDRESS_OLD in zone file \"$zone_file\" failed!"
fi
fi
## - setze neue ipv6 adresse ## - setze neue ipv6 adresse
## - ## -
echononl "\t Set new IPv6 address ($IPv6_ADDRESS_NEW).." echononl "\t Set new IPv6 address ($IPv6_ADDRESS_NEW).."
_replaced_ipv6=false _replaced_ipv6=false
_failed=false
if grep -e "IN\s*AAAA\s*$IPv6_ADDRESS_OLD" $zone_file > /dev/null 2>&1 ; then if grep -e "IN\s*AAAA\s*$IPv6_ADDRESS_OLD" $zone_file > /dev/null 2>&1 ; then
if $IGNORE_ALT_HOSTNAMES ; then
perl -i -n -p -e "s#^(.+(-alt).*)\s+IN\s+AAAA\s+$IPv6_ADDRESS_OLD#\1 IN AAAA 88:88:88::88#" $zone_file > /dev/null 2>&1
if [[ $? -gt 0 ]]; then
_failed=true
fi
perl -i -n -p -e "s#^(.+(-neu).*)\s+IN\s+AAAA\s+$IPv6_ADDRESS_OLD#\1 IN AAAA 88:88:88::88#" $zone_file > /dev/null 2>&1
if [[ $? -gt 0 ]]; then
_failed=true
fi
fi
perl -i -n -p -e "s#IN\s+AAAA\s+$IPv6_ADDRESS_OLD#IN AAAA $IPv6_ADDRESS_NEW#" $zone_file perl -i -n -p -e "s#IN\s+AAAA\s+$IPv6_ADDRESS_OLD#IN AAAA $IPv6_ADDRESS_NEW#" $zone_file
if [ "$?" = "0" ]; then if [[ $? -gt 0 ]]; then
_failed=true
fi
if $IGNORE_ALT_HOSTNAMES ; then
perl -i -n -p -e "s#IN\s+AAAA\s+88:88:88::88#IN AAAA $IPv6_ADDRESS_OLD#" $zone_file > /dev/null 2>&1
if [[ $? -gt 0 ]]; then
_failed=true
fi
fi
if $_failed ; then
echo_failed
error "Replacing $IPv6_ADDRESS_OLD with $IPv6_ADDRESS_NEW in zone file \"$zone_file\" failed!"
else
echo_ok echo_ok
_replaced=true _replaced=true
_replaced_ipv6=true _replaced_ipv6=true
else
echo_failed
error "Replacing $IPv6_ADDRESS_OLD with $IPv6_ADDRESS_NEW in zone file \"$zone_file\" failed!"
fi fi
else else
echo_skipped echo_skipped
fi fi
if $_replaced_ipv6 && $IGNORE_ALT_HOSTNAMES ; then
echononl "\t Setting back hostnames containing \"-alt\".."
perl -i -n -p -e "s#^(.+(-alt).*)\s+IN\s+AAAA\s+$IPv6_ADDRESS_NEW#\1 IN AAAA $IPv6_ADDRESS_OLD#" $zone_file > /dev/null 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Setting back hostnames containing \"-alt\" to $IPv6_ADDRESS_OLD in zone file \"$zone_file\" failed!"
fi
fi
# - Calculate new serial # - Calculate new serial
# - # -
echo "" echo ""