SW 개발

[shell] shell script 네트워크 인터페이스 및 통신감지하기 예제

. . . 2020. 3. 17. 13:52
반응형

사용 시나리오

다음과 같은 사용케이스에서 문제가 발생하여.. 네트워크 인터페이스를 감시할일이 생겼다.

  1. 네트워크 인터페이스가 가끔 올라오지 않음.
  2. 네트워크 동작도 안됨.
  3. 그럴때 감지하고, 재부팅 시키고싶다.

주기적으로 네트워크를 감시하고 해당내용을 로그도 남기고, 재부팅하고싶다.

쉘스크립트 작성

다음과 같이 동작하게 한다.

  1. 그냥 8.8.8.8 로 핑을 날린다.
  2. 핑이 3회이상 실패할시, 특정동작을 하기하자.
    1. 리부팅을 혹은 로그를 남긴다.
    2. ifconfig 를 이용하여 네트워크 상태를 남긴다.

위와같이 스크립트를 동작하게 하기위해서 다음의 스크립트를 작성.

#!/bin/bash

TARGET_IP=8.8.8.8
var=0

DATE_WITH_TIME=`date "+%Y%m%d-%H%M%S"`
LOG_PATH=`/mypath/log/`

while true
do
        ping -c 1 ${TARGET_IP} 2>/dev/null 1>/dev/null
        if [ "$?" = 0 ];
        then
                var=0
                exit 0
        else
                var=$((var+1))
        fi

        echo cur fail cnt ${var}

        # fail count..
        if [[ "$var" -gt 3 ]]; then
#               echo bye bye
                break
        fi
        sleep 5
done

## reach network fail...
echo "network fail !!!! do something.."

ifconfig >> ${LOG_PATH}/netfail.${DATE_WITH_TIME}.log

위의 스크립트를 cron 에 등록하여 일정시간마다 동작시키게 하자.

원격지의 서버가 제어가 안될때 네트워크도 체크하도록하자 ㅠㅠ

끗.

반응형