我创建了一个 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
我想要三条独立的信息:
- 已建立 telnet 在线连接
- 因连接被拒绝而离线
- 连接超时 TIMEOUT
问题是“连接被拒绝”和“连接超时”都返回退出状态 1。
有什么想法吗?谢谢大家。
答案1
我很想对它进行计时 - 如果它很快返回,则假设被拒绝,否则超时。您可能会遇到一些在超时之前被拒绝的极端情况,但至少您应该会得到合理的结果。
使用bash 的时间命令会满足您的需求。您需要确定拒绝和超时的阈值,这可能需要反复试验。