Столкнулся сегодня, МТС пропал из сети. Пришлось передернуть питание.
Написал службу ping-watchdog. Пинг каждые 15 сек и ребут если 20 раз не успешно.
/root/ping_watchdog.sh
#!/bin/sh
HOST="192.168.1.1"
FAIL_COUNT=0
MAX_FAILS=20
while true; do
if ping -c 1 -W 2 $HOST >/dev/null 2>&1; then
FAIL_COUNT=0
logger "watchdog: ping ok"
else
FAIL_COUNT=$((FAIL_COUNT+1))
logger "watchdog: ping failed ($FAIL_COUNT/$MAX_FAILS)"
fi
if [ "$FAIL_COUNT" -ge "$MAX_FAILS" ]; then
logger "watchdog: reboot triggered"
reboot
fi
sleep 15
done
Автозагрузка:
/etc/init.d/pingwatchdog
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /root/ping_watchdog.sh
procd_set_param respawn
procd_close_instance
}
Делаем оба файла исполняемыми
chmod +x /etc/init.d/pingwatchdog
chmod +x /root/ping_watchdog.sh
И включаем
/etc/init.d/pingwatchdog enable
/etc/init.d/pingwatchdog start
Логи можно проверить по команде logread