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.