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
반응형