bash
#!/bin/bash
cur_data=`date +%Y-%m-%d`
log_file="/tmp/$(hostname)_telnet_ $cur_data.log"
add_ping=(10.116.20.11 10.116.20.12)
add_telnet=(10.116.20.13 10.116.20.14)
port_telnet="22"
echo -n "" >$log_file
for i in "${add_ping[@]}"
do
echo -e "Pinging $i"
ping -c 3 $i >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "server $i SUCCESS" >>log_file
else
echo "server $i FAILED" >>log_file
fi
done
for i in "${add_telnet[@]}"
do
echo -e "Test connect $i $port_telnet"
test=`echo quit |timeout --signal=9 3 telnet $i $prot_telnet 2>/dev/null |grep "\^]" |wc -l`
if [ $test -eq 0 ];then
echo "server $i $prot_telnet FAILED" >>log_file
else
echo "server $i $prot_telnet SUCCESS" >>log_file
fi
done
echo quit
:向telnet命令发送"quit"字符串,表示退出telnet连接。timeout --signal=9 3 telnet 192.168.197.10 11522
:使用timeout命令来设置telnet命令在3秒内超时。如果telnet命令在3秒内没有完成连接,则会被强制终止(使用信号9 - SIGKILL)。telnet命令尝试连接到IP地址为192.168.197.10的主机的11522端口。2>/dev/null
:重定向标准错误输出到/dev/null,即忽略错误信息。grep "\^]"
:使用grep命令筛选出包含"^]"的行。"^]"是telnet交互时输入的字符,表示telnet的控制字符。wc -l
:统计匹配行的数量。