ip 체크쉘 : grid 장애시 가장 먼저 체크해야 하는것..
이 host file sample ㄹ 만듬..
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# Public
192.168.24.1 dbwr1.localdomain dbwr1
192.168.24.2 dbwr2.localdomain dbwr2
# Private
192.168.10.147 dbwr1-priv.localdomain dbwr1-priv
192.168.10.148 dbwr2-priv.localdomain dbwr2-priv
# Virtual
192.168.24.31 dbwr1-vip.localdomain dbwr1-vip
192.168.24.32 dbwr2-vip.localdomain dbwr2-vip
# SCAN
192.168.24.41 dbwr-scan.localdomain dbwr-scan
192.168.24.42 dbwr-scan.localdomain dbwr-scan
192.168.24.43 dbwr-scan.localdomain dbwr-scan
========================================================
#!/bin/bash
# 호스트 파일의 경로
HOSTS_FILE="/etc/hosts"
# IP 주소와 호스트 이름을 담을 배열
declare -A HOSTS
# 호스트 파일을 읽어서 배열에 저장
while IFS= read -r line; do
# 주석과 빈 줄은 무시
[[ $line =~ ^#.* ]] || [[ -z $line ]] && continue
# IP 주소와 호스트 이름 추출
ip=$(echo $line | awk '{print $1}')
hostnames=$(echo $line | awk '{for(i=2;i<=NF;i++) print $i}')
# 배열에 저장
for hostname in $hostnames; do
HOSTS[$ip]+="$hostname "
done
done < "$HOSTS_FILE"
# IP 주소와 호스트 이름 확인
for ip in "${!HOSTS[@]}"; do
echo "Checking $ip (${HOSTS[$ip]})..."
# 핑을 4회 실행
if ping -c 4 "$ip" > /dev/null; then
echo "$ip is reachable"
else
echo "$ip is not reachable"
fi
done