본문 바로가기

네트워크,보안

OPENWRT WIFI 인터페이스 Watchdog 예제

라즈베리 파이에 설치한 OPENWRT 프로그램이 여러 가지 환경요인에 따라 와이파이가 끊기는 경우가 있는데, 

간혹 이게 재접속이 되지 않고 프로그램이 떡져? 버리면서 와이파이 연결도 되지 않고

결국 내가 직접 현장에 가서 재시작을 해줘야 되는 경우가 발생했다.

증상은 ifconfig 등을 실행하게 되면 바로 실행되지 않고 10초 이상 멈추어 있다가 결과값이 나오게 되며,

그럴때는 wifi 가 전혀 연결도 동작도되지않는다. 희한하게 wlan 자체는 보였다.

여러 가지 삽질을 해보아도 해결책은 보이지 않았고 결국 재시작 하면 문제가 해결되곤 했다.

따라서 이를 감지해 ifconfig 가 실행되지 않을 시, (정상종료가 되지 않았을 시) 

재시작 시키는 스크립트를 만들어 본다.

 

이 스크립트를 저장한 뒤 crontab  등으로 일정 시간 간격으로 실행해볼예정이다.

 

 

#!/bin/bash
timeout 3s ping 192.168.210.1 (와이파이 서버를 사용함, VPN 서버에 핑이 가지는경우가 가장이상적이긴 함. 바꿔서 사용)
exitCode=$(echo $?)
if [ $exitCode -eq 0 ]; then
        echo "successfully finished"
else                                
        echo "cannot finish command in time. rebooting..."
        reboot                                         
fi

 

crontab -e

는 이런식으로 구성했다..

 

/5 * * * * /bin/bash  "/root/watchdog.sh"