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
'Linux' 카테고리의 다른 글
[Linux] sftp 계정 생성 및 설정 방법 (1) | 2024.05.14 |
---|---|
[Linux] sftp sshd_config 에서 match 로 user, group 설정 방법 (1) | 2024.05.13 |
[Linux] SSL,TLS 인증서 만료일 체크하여 Mattermost 전송 (1) | 2024.04.30 |
[Linux] 리눅스에서 <,> 표준 입력,출력 리디렉션 명령어 사용법 (1) | 2024.04.29 |
[Linux] envsubst 명령어 사용 방법 (환경 변수 치환) (1) | 2024.04.25 |