[Linux, Mac] netcat을 이용한 해당 포트 살아있나 체크 및 응용 Computer Tip

모든 컴퓨팅 작업을 하고 서비스를 이용하다 보면 수없이 많은 해당 서비스가 살아있는지
체크하고 싶은 경우가 생깁니다.

웹서비스, 메일서비스, SSH 서비스 등등 거의 모든 인터넷 서비스가
실은 TCP 입장에서의 Server-Client 연결이기 때문이지요.
(일부 UDP 로 예외 적인 프로토콜들도 있습니다.)

해당 서비스가 살이 있는지 살펴보는 가장 쉬운 방법은 
통신 유틸이티에서의 맥가이버칼이라고 불리우는 netcat을 이용하는 것입니다.

아주 쉽게

$ nc -z 호스트 포트
라고 명령을 주면 해당 서비스가 살아 응답을 하는지 아닌지 알 수 있습니다.

예를 들어

$ nc -z imot1 50080
Connection to imot1 port 50080 [tcp/*] succeeded!

라고 특정 서비스 50080 (실은 단순 웹서비스 80의 포트를 변경한 것입니다)
가 살아 있는지 확인 할 수 있습니다.

그리고 이것을 조금 더 활용해서 다음과 같은 alias 를 만들어

alias nzs='while [ 1 ]; do
    date
    nc -z imot1 22
    if [ $? -ne 0 ];then
        echo "  Not ready";
    else
        break
    fi
done
ssh user@imot1'

$HOME 에 .bashrc 또는 .bash_profile (Mac) 에 넣습니다.

그러고 nzs 라고 하면 해당 서버를 체크하여
해당 포트가 열려있게 되면 ssh로 연결을 시도하게 됩니다.

재부팅 하거나 하면 유용하게 사용할 수 있겠네요...
암튼 간단하게 수동으로 체크하는 방법입니다.


어느 분께는 도움이 되셨기를...

덧글

댓글 입력 영역

구글애드텍스트