Linux

[Linux] nc 명령어로 기관 통신 모니터링 스크립트

IT-PAPA 2024. 5. 2. 06:23
728x90
반응형

타임아웃을 3초로 설정하여 기관별 통신테스트 하는 스크립트입니다.

#!/bin/bash

# 기관 목록을 배열로 정의합니다.
declare -A institutions=(
  ["기관1"]="123.45.67.89:80"
  ["기관2"]="98.76.54.32:80"
  ["기관3"]="135.79.86.42:80"
  ["기관4"]="246.80.135.79:80"
  ["기관5"]="192.168.1.1:80"
)

# 비정상적인 기관들의 목록을 저장할 변수를 초기화합니다.
unhealthy_institutions=""

# 각 기관의 통신 상태를 확인합니다.
for institution in "${!institutions[@]}"; do
  ip_port=(${institutions[$institution]//:/ })
  nc -zvw3 ${ip_port[0]} ${ip_port[1]} &> /dev/null
  if [ $? -ne 0 ]; then
    # 통신이 비정상적인 경우, 목록에 추가합니다.
    unhealthy_institutions+="${institution}\n"
  fi
done

# 비정상적인 기관이 있을 경우, curl을 사용하여 /api를 호출합니다.
if [ -n "$unhealthy_institutions" ]; then
  message=$(echo -e "비정상적인 기관들:\n$unhealthy_institutions")
  curl -X POST http://yourserver.com/api -d "{\"message\":\"$message\"}" -H "Content-Type: application/json"
fi

nc 명령어에 -w3 옵션을 추가하여 3초 후에 타임아웃이 발생하도록 설정했습니다.

스크립트를 실행하기 전에, yourserver.com을 실제 서버 주소로, institutions 배열 내의 IP와 포트를 실제 값으로 교체해야 합니다.

또한, 이 스크립트는 Linux 환경에서 동작하도록 작성되었습니다.

다른 운영 체제에서 사용하려면 적절히 수정해야 할 수 있습니다. echo -e 명령어는 개행 문자를 해석하여 출력합니다.

728x90
반응형
LIST