From 79be6eae5a36c724dddc51c5610df4232396bc21 Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 14 Feb 2021 12:06:52 +0100 Subject: [PATCH] get_sites_with_external_nameservers.sh: add support for 'omitted site names'. --- ...ites_with_external_nameservers.conf.sample | 13 ++++ get_sites_with_external_nameservers.sh | 71 +++++++++++++++++-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/conf/get_sites_with_external_nameservers.conf.sample b/conf/get_sites_with_external_nameservers.conf.sample index 56d0ab0..7678e2f 100644 --- a/conf/get_sites_with_external_nameservers.conf.sample +++ b/conf/get_sites_with_external_nameservers.conf.sample @@ -13,3 +13,16 @@ # #INTERNAL_NS_SERVER="" + +# OMITTED_SITE_NAMES +# +# site names containing one of the given omitted names will not be recognized +# +# Example: +# OMITTED_SITE_NAMES=" +# warenform.de +# warenform.org +# " +# Blank separated list of nameservers +# +#OMITTED_SITE_NAMES="" diff --git a/get_sites_with_external_nameservers.sh b/get_sites_with_external_nameservers.sh index b32c169..04e516a 100755 --- a/get_sites_with_external_nameservers.sh +++ b/get_sites_with_external_nameservers.sh @@ -22,6 +22,7 @@ DEFAULT_HTTP_USER="www-data" DEFAULT_HTTP_GROUP="www-data" declare -a site_names_arr +declare -a omitted_site_names_arr declare -a sites_external_ns_servers declare -a internal_ns_server_arr @@ -222,6 +223,11 @@ fi [[ -z "$INTERNAL_NS_SERVER" ]] && NEED_INTERNAL_NAME_SERVER=true +if [[ -n "$OMITTED_SITE_NAMES" ]] ; then + for _site_name in $OMITTED_SITE_NAMES ; do + omitted_site_names_arr+=("$_site_name") + done +fi @@ -495,7 +501,21 @@ if $terminal ; then fi done else - echo -e "\033[4GList of nameservers..............: \033[33m-- Not given --\033[m" + echo -e "\033[4GList of omitted site names.......: \033[33m-- Not given --\033[m" + fi + echo "" + if [[ ${#omitted_site_names_arr[@]} -gt 0 ]] ; then + _first=true + for _site_name in ${omitted_site_names_arr[@]} ; do + if $_first ; then + echo -e "\033[4GList of omitted site names.......: $_site_name" + _first=false + else + echo -e "\033[39G$_site_name" + fi + done + else + echo -e "\033[4GList of omitted site names.......: \033[33m-- Not given --\033[m" fi else @@ -552,7 +572,21 @@ else fi done else - echo " List of nameservers..............: -- Not given --" + echo " List of omitted site names.......: -- Not given --" + fi + echo "" + if [[ ${#omitted_site_names_arr[@]} -gt 0 ]] ; then + _first=true + for _site_name in ${omitted_site_names_arr[@]} ; do + if $_first ; then + echo " List of omitted site names.......: $_site_name" + _first=false + else + echo "\033[39G$_site_name" + fi + done + else + echo " List of omitted site names.......: \033[33m-- Not given --\033[m" fi @@ -635,12 +669,21 @@ if [[ ${#vhost_config_files_arr[@]} -gt 0 ]]; then done < "$_config_file" - # Check if all site_names are hosted on O.OPEN Namesevers + # Check if all site_names are hosted on your (the given) namesevers # for _site_name in "${site_names_arr[@]}" ; do [[ "$_site_name" =~ \.\* ]] && continue + _found_omitted=false + if [[ ${#omitted_site_names_arr[@]} -gt 0 ]]; then + for _omitted_name in ${omitted_site_names_arr[@]} ; do + [[ "$_site_name" =~ $_omitted_name ]] && _found_omitted=true + break + done + $_found_omitted && continue + fi + _name="$_site_name" @@ -651,6 +694,10 @@ if [[ ${#vhost_config_files_arr[@]} -gt 0 ]]; then while [[ -z "$authorited_ns_servers" ]] ; do _name="${_name#*.}" authorited_ns_servers="$(dig +short $_name NS)" + if [[ ! "$_name" =~ \. ]]; then + error "Cannot detect authoritativ nameserver for \033[1m$_site_name\033[m" + break + fi done _found=false @@ -707,22 +754,36 @@ if [[ ${#sites_external_ns_servers[@]} -gt 0 ]] ; then fi + _first=true for _val in "${sites_external_ns_servers[@]}" ; do IFS=':' read -a _val_arr <<< "${_val}" config_file="${_val_arr[0]}" site_name="${_val_arr[1]}" names_server="${_val_arr[2]}" if [[ "${config_file}" != "${last_config_file}" ]] ; then - echo "" + _first=true if $terminal ; then + echo "" + echo "" echo -e "\033[4G\033[33m$(basename "${config_file}")\033[m" else + echo "" + echo "" echo " $(basename "${config_file}")" fi last_config_file="${config_file}" fi if $terminal ; then - echo -e "\033[7G${site_name}:\033[45G${names_server}" + if $_first ; then + _first=false + else + echo "" + fi + echo -en "\033[7G${site_name}:" + IFS=',' read -ra _ns_name_arr <<< "$names_server" + for _ns_name in "${_ns_name_arr[@]}" ; do + echo -e "\033[45G${_ns_name}" + done else echo -e " ${site_name}: ${names_server}" fi