반응형
사용 시나리오
다음과 같은 사용케이스에서 문제가 발생하여.. 네트워크 인터페이스를 감시할일이 생겼다.
- 네트워크 인터페이스가 가끔 올라오지 않음.
- 네트워크 동작도 안됨.
- 그럴때 감지하고, 재부팅 시키고싶다.
주기적으로 네트워크를 감시하고 해당내용을 로그도 남기고, 재부팅하고싶다.
쉘스크립트 작성
다음과 같이 동작하게 한다.
- 그냥
8.8.8.8
로 핑을 날린다. - 핑이 3회이상 실패할시, 특정동작을 하기하자.
- 리부팅을 혹은 로그를 남긴다.
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 에 등록하여 일정시간마다 동작시키게 하자.
원격지의 서버가 제어가 안될때 네트워크도 체크하도록하자 ㅠㅠ
끗.
반응형