Я создаю сценарий 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.
Любая идея? Спасибо всем.
У меня возникнет соблазн рассчитать время - если он вернется быстро, предположим, что отказался, иначе истечет время ожидания. Вы можете столкнуться с крайними случаями, когда в нем будет отказано непосредственно перед периодом тайм-аута, но, по крайней мере, вы должны получить разумные результаты.
С помощью Баш время команда даст вам то, что вам нужно. Вам нужно будет выяснить, какими должны быть пороги для отказа и тайм-аута, возможно, путем проб и ошибок.