Como verificar se todos os resolvedores de DNS estão funcionando? [fechadas]

0

Como posso verificar se todos os resolvedores de DNS estão trabalhando no console do Linux?

    
por mlethys 18.03.2014 / 12:36

1 resposta

2

Você pode obter uma lista de resolvedores DNS de /etc/resolv.conf . Aqui está uma função para fazer isso:

# print the IP addresses of all configured nameservers
resolvers() {
    awk '$1 == "nameserver" { print $2 }' /etc/resolv.conf
}

E normalmente você usa dig ou host para consultar um resolvedor de DNS para ver se está funcionando. Neste exemplo, estou testando se podemos resolver NS (nameserver) para google.com. Se você estiver confiando em um host específico sendo resolvido, altere google.com in ns para esse nome de host.

# given a nameserver IP address, exit successfully if it's responding, false otherwise
is_resolver_responding() {
    dig +short google.com in ns @$1 >/dev/null
}

Aqui está uma maneira de juntar as funções. Ele imprime o endereço IP de cada servidor de nomes, seguido por OK ou BAD . Você poderia facilmente mudar isso para sair se um deles não está funcionando, ou fazer o que você precisa.

# print whether each configured resolver is responding (<ip> <"OK" or "BAD">)
for resolver in $(resolvers); do
    printf '%s is %s\n' "$resolver" $(is_resolver_responding $resolver && echo OK || echo BAD)
done
    
por 18.03.2014 / 14:17

Tags