Назад | Перейти на главную страницу

Статус выхода Telnet одинаков для отказа в соединении и тайм-аута соединения.

Я создаю сценарий bash, который проверяет соединение с хостом с помощью telnet. Это основной код:

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

Я хочу иметь три отдельных сообщения:

Проблема в том, что и «соединение отклонено», и «тайм-аут соединения» возвращают статус выхода 1.

Любая идея? Спасибо всем.

У меня возникнет соблазн рассчитать время - если он вернется быстро, предположим, что отказался, иначе истечет время ожидания. Вы можете столкнуться с крайними случаями, когда в нем будет отказано непосредственно перед периодом тайм-аута, но, по крайней мере, вы должны получить разумные результаты.

С помощью Баш время команда даст вам то, что вам нужно. Вам нужно будет выяснить, какими должны быть пороги для отказа и тайм-аута, возможно, путем проб и ошибок.