bash script help

1

Estou usando o seguinte script para cavar um domínio em vários servidores. Mas se um domínio não existir, a saída será "Resolved by server: domain.com;". Apenas porque a execução do comando retorna 0. Alguém pode me ajudar se não houver registros que devem informar a declaração correta em vez de imprimir uma declaração errada.

#!/bin/bash

a=$1
go="8.8.8.8"
f2="4.2.2.2"


if [ "$a" = "" ]
        then
echo "Usage: 'basename $0' domain.com"
exit 1
        else

dig @"$go" "$a" +short
if  [ "$?" != 0 ]
        then
        echo "Server: $go did not resolve: $a ; "
        else
        echo "Resolved by $go: $a ; "
        echo " "
fi
        fi

se [[-z $ (dig @ "$ go" "$ a" + curto)]] trabalhou para mim obrigado :)

    
por User4283 08.10.2010 / 18:10

2 respostas

0

Em vez de:

dig @"$go" "$a" +short
if  [ "$?" != 0 ]

tente:

if [[ -z $(dig @"$go" "$a" +short) ]]
    
por 10.10.2010 / 02:33
1

dig é uma ferramenta para verificar problemas em um servidor DNS, uma vez que um NXDOMAIN não é um problema que retornará 0.
dig irá lançar outros códigos, e. quando o servidor está inoperante, a consulta é recusada ...

Mude para uma ferramenta diferente, como host:

$ host serverfault.com 8.8.8.8 >/dev/null
$ echo $?
0
$ host serverfaultxyz.com 8.8.8.8 >/dev/null
$ echo $?
1
    
por 08.10.2010 / 18:23

Tags