Execute a escavação em duas listas

3

Eu preciso pesquisar os domínios e esses aliases de domínios, então o resultado será:
IF domain (+ não possui um alias) e está usando meus Name Servers - > então imprima
SE o domínio e o alias estiverem usando meus Servidores de Nomes - > então imprima
Tudo o resto não (incluindo quando o domínio está usando meus servidores de nomes e alias não). Eu tenho domínios armazenados no MySQL e há o script em que 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 QUERY, estou listando tudo (ambos os 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ínios + aliases. Se qualquer um não usando NS, eu teria que definir uma variável que dita a impressão do domínio. Deixe-me saber quais são suas ideias e, por favor, compartilhe a solução, se possível.

    
por micjan 05.11.2016 / 03:44

1 resposta

0

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

Eu prefiro usar as opções longas em scripts, pois eles são auto-documentados.

A consulta em $QUERY1 pode ser criada de tal forma que o awk não seja necessário:

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

Eu fiz dig ler suas consultas da entrada padrão do canal vindo de awk e o grep nos ajuda a encontrar XXX na saída.

Não é necessário um loop messy.

Obviamente, ele não faz o que você quer fazer no final, apenas o que você faz no momento, mas como eu não sei muito sobre as pesquisas de DNS, vou deixar por aqui.

    
por 24.01.2017 / 21:14