답변:
포트가 열려 있는지 확인하려면 다음을 시도하십시오.
$ nc -zv 10.10.10.24 3306
Connection to localhost 3306 port [tcp/mysql] succeeded!
nc
포트가 열려 있으면 0을, 그렇지 않으면 1을 반환합니다. 이것은 스크립팅에도 매우 도움이됩니다. v
조용히 유지 하려면 스위치를 생략하십시오 .
if ! nc -z 10.10.10.24 3306
then
do_something
fi
nc
비 대화식 사용에 훨씬 좋습니다. 같은 것을 시도하십시오
echo -e "\n\n" | nc 10.10.10.24 3306
텔넷 스크립트를 자동화하려면 expect를 사용해야합니다. expect 홈페이지를 참조하십시오 .
이것은 특정 경우에 대한 내 스크립트입니다.
host=localhost
DATE=`date +%Y-%m-%d`
TIME=`date +%H%M%S`
LOG_OK=/tmp/telnet_ok
LOG_FAIL=/tmp/telnet_falha
for port in 80 25 22 443 110
do
if telnet -c $host $port </dev/null 2>&1 | grep -q Escape; then
echo "$DATE $TIME $port: Connected" >> $LOG_OK
else
echo "$DATE $TIME $port : no connection" >> $LOG_FAIL
fi
done
http://fajlinux.com.br/2014/10/10/script-monitorando-via-telnet/
bash 쉘 / 예상에서 텔넷을 사용하는 방법은 다음과 같습니다
#!/usr/bin/expect
# just do a chmod 755 one the script
# ./YOUR_SCRIPT_NAME.sh $YOUHOST $PORT
# if you get "Escape character is '^]'" as the output it means got connected otherwise it has failed
set ip [lindex $argv 0]
set port [lindex $argv 1]
set timeout 5
spawn telnet $ip $port
expect "'^]'."