InfraPlatform

[리눅스] Bash 스크립트로 서버 포트 상태 모니터링하는 방법 - awk와 grep 활용

IT오이시이 2024. 8. 27. 00:51
728x90

Bash 스크립트로 서버 포트 상태 모니터링하는 방법 - netstat과 awk 활용

 
  Shell Script로 여러 단어를 찾는 방법은 알아두면 용이합니다.
netstat와 여러 개의 port를 탐색하는데 grep -E 와  awk를 이용한 방법을 정리드립니다.

 

이 스크립트는 netstat과 awk를 사용해 서버의 주요 포트(3000, 9091, 9092 등)의 LISTEN 상태를 자동화하여 확인하는 방법입니다..

각 포트 목록을 정의하고 각 상태를 순회하며 LISTEN 중인지 출력하고, 특정 포트들에 대한 상태를 별도로 검사해 표시할수 있고 , 서버 관리 및 포트 모니터링을 간편하게 수행할 수 있습니다.

 

#grep -E 를 이용한  여러 Port  상태 조회 

 

아래 예시와 같이 하나의 bash 명령으로 확인이 가능하다는 장점이 있습니다. (정규식을 이용한 문자열 찾기 용이함)

echo "-Netstat Port Status -------------------"
netstat -antp | grep  -E "(3000|3306|9000|9180|9091|9092|9443|9080|9090|8080|80)"

 
 

 

# awk를 이용한 여러 Port  상태 조회 

- awk를 이용하여 다양한 상황별로 상태 확인이 가능합니다. (awk를 이용하면 반복되는 데이터 탐색이 용이함)

#!/bin/bash

# 확인할 포트 리스트
PORTS="3000 9091 9092 9443 9090 9180 3306"

# 각 포트를 순회하면서 LISTEN 상태 확인
for PORT in $PORTS; do
    # echo "Checking port $PORT..."
    netstat -antl | egrep "*:$PORT.*LISTEN" | awk -v PORT=$PORT '
          END { if(NR>0) { printf "Checking Port [%s]: Ok : %s %s -> %s\n", PORT, $1, $4, $5;}
                else     { printf "Checking Port [%s]: None:\n",  PORT; }
              } ';
done

 
 
 
 

728x90
반응형