OpenWrt 6: ping watchdog

Obcas se stane, ze spadne internet, vytuhne router, nebo nastane chyba v Matrixu. Prave pro tyto pripady se hodi mit watchdog.

Nize uvedeny skript pouzivam k detekci, zda funguje z routeru pripojeni k internetu.

#!/bin/sh

# cd /tmp || exit
# if the first command succeed the second will never be executed
# If the exit status of the first command (cd /tmp) is not 0, then execute the second command (exit).
# It's the opposite of '&&', where the second command is executed only if the exit status of the preceding command is 0.

while true; do     
  ping -c 4 -I eth0 www.google.com || reboot
  sleep 30
done

Klicove je „||“. Pokud se prvni prikaz provede bez chyby, druhy se nikdy nevykona.

Takze v ukazce pingnu na google (4x). Pokud google odpovi, pockam 30s a znova. Pokud neodpovi restartuju PC. Pozadavky posilam pres sitovku eth0.
Prikazy je samozrejmne mozne zamenit za libovolne vlastni.

Skript ulozime treba do /etc/config/watchdog.sh (vim, odporuje to FSH) a spustime ho pomoci:

/bin/sh /etc/config/watchdog.sh >> /dev/null 2>&1 &

tento radek je idealni dopsat pred „exit 0“ v souboru /etc/rc.local.

Pokud by se misto restartu mela poslat zprava do syslogu, staci misto reboot zavolat logger.

#!/bin/sh
while true; do     
  ping -c 4 -I eth0 www.google.com || logger "Nejde se pingnout pres eth0 na www.google.com."
  sleep 30
done

 

Dalsi clanky o OpenWrt.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *