Execute escavação em duas listas

Execute escavação em duas listas

Preciso executar uma escavação nos domínios e nesses aliases de domínio, então o resultado será:
SE o domínio (+ não tiver um alias) e estiver usando meus servidores de nomes -> então imprima
SE o domínio e o alias estiverem usando meu nome Servidores -> então imprima
Todo o resto não (inclusive quando o domínio está usando meus servidores de nomes e o alias não). Tenho domínios armazenados no MySQL e aí está o script no qual estou trabalhando:

for domain in `echo "$QUERY1" | mysql -N -s -u $USER -p$PASS $DBNAME -h$HOST | awk '{print $1}'; do
    lookup=$(dig $domain ns +short)
    if [[ "$lookup" =~ 'XXX' ]]; then
        our=1
        break
    else
        our=0
        break
    fi
done

Nesta CONSULTA estou listando tudo (domínios e aliases). É claro que posso criar outra consulta para listar apenas aliases ou apenas domínios. Parece que eu precisaria agrupar todos os aliases do domínio e percorrer a lista de nomes de domínio + aliases. Se algum deles não usasse NS, eu teria que definir a variável que determina a impressão do domínio. Deixe-me saber quais são suas idéias e compartilhe a solução, se possível.

Responder1

Considere a seguinte alternativa ao script em que você está trabalhando:

mysql --silent --skip-column-names \
    --user="$USER" --password="$PASSWORD" \
    --host="$HOST" --database="$DBNAME" \
    --execute="$QUERY1" |
awk '{ printf("%s ns +short\n", $1) }' |
if dig -f - | grep -q "XXX"; then
    our=1
else
    our=0
fi

Prefiro usar opções longas em scripts, pois são autodocumentadas.

A consulta $QUERY1pode ser elaborada de forma que awknão seja necessário:

SELECT CONCAT(column, " ns +short") FROM ...

Eu li digsuas consultas a partir da entrada padrão do tubo que vem awke isso grepnos ajuda a encontrar XXXa saída.

Não é necessário nenhum loop confuso.

Obviamente, ele não faz o que você quer fazer no final, apenas o que você faz no momento, mas como não sei muito sobre pesquisas de DNS, deixarei por isso mesmo.

informação relacionada