O status de saída do Telnet é igual para conexão recusada e tempo de conexão

1

Eu crio um script bash que verifica a conexão com um host com o telnet. Esse é o código principal:

telnet $X 2404 < $TEST &>/dev/null
if [ $? -ne 0 ] ; then
    echo -n "$X " >> $LOG_FILE
    echo "OFFLINE <---" >> $LOG_FILE
else
    echo -n "$X " >> $LOG_FILE
    echo "ONLINE" >> $LOG_FILE
fi

Eu quero ter três mensagens separadas:

  • ONLINE para o telnet estabilizado
  • OFFLINE para conexão recusada
  • TEMPO LIMITE para o tempo limite da conexão

O problema é que tanto "conexão recusada" quanto "tempo limite de conexão" retornam um status de saída 1.

Alguma ideia? Obrigado a todos.

    
por John 05.10.2011 / 17:09

1 resposta

1

Eu ficaria tentado a marcá-lo - se ele voltar rapidamente, suponha que foi recusado, caso contrário, expirou. Você pode obter alguns casos extremos em que é recusado antes do período de tempo limite, mas pelo menos você deve obter resultados razoáveis.

Usar o comando tempo do bash lhe dará o que você precisa. Você precisará descobrir quais os limites devem ser para um recusado e um tempo limite, talvez por tentativa e erro.

    
por 05.10.2011 / 17:49