Project: TURRIS - automatické nastavení intenzity a barev LED v2
Tento návod vznikl inspirací různých skriptů nalezených buď na internetu nebo na fóru Turris. Návod zde uvádím zejména z důvodu mít vše na jednom místě (samotnému mi trvalo poměrně dlouhou dobu, než jsem se zorientoval a vybral/zkombinoval to, co mi bude vyhovovat). Hlavním hybatelem toho skriptu je JardaB, díky kterému jsem se inspiroval a provedl ve skriptu menší změny (přizpůsobení na Turris, "hezčí" signalizace začátku skriptu, ověřování VPN, aj.).
Tento návod obsahuje řešení jak pro nastavení intenzity svícení LED v závislosti na různém čase, tak i řešení zobrazování různých barev LED v závislosti na dostupnosti/provozu. Jedním pohledem na router se tak dá zjistit, zdali je problém v nedostupnosti nejenom internetu samotného (konektivity), ale také přímo DNS či brány. Dále zobrazuje, že je například aktivní VPN připojení. Zde bych rád upozornil, že vzhledem k tomu, že nevyužívám interní WiFi, tak využívám diodu WIFI pro signalizaci různých stavů (proto jej nenastavuji na AUTO, ale na ENABLE). Skript si samozřejmě můžete upravit dle vlastních potřeb a požadavků.
Pro každý návod je třeba mít připojen router prostřednictvím SSH, tedy v případě Windows doporučuji například program Putty. Tedy v konzoli musíte vidět:
root@turris:~#
V adresáři /root/sh (nemáte-li, vytvořte si podadresář 'sh') vytvořte soubor connCheck.sh a do jeho obsahu vložte:
#!/bin/sh # check the connection to the Internet # --- indications of activity --- rainbow pwr disable rainbow wifi disable sleep 0.3 rainbow pwr D000F0 enable rainbow wifi disable sleep 0.2 rainbow pwr disable rainbow wifi D000F0 enable sleep 0.2 rainbow pwr D000F0 enable rainbow wifi disable sleep 0.2 rainbow pwr disable rainbow wifi D000F0 enable sleep 0.2 rainbow pwr D000F0 enable rainbow wifi disable sleep 0.2 rainbow pwr disable rainbow wifi D000F0 enable sleep 0.2 rainbow pwr D000F0 enable rainbow wifi disable sleep 0.2 rainbow pwr disable rainbow wifi D000F0 enable sleep 0.2 rainbow pwr green enable rainbow wifi green enable # --- check connection gateway, dns, internet --- # check gateway - wan+wifi ruzova if !(ping -c 1 192.168.0.1) then echo -e "\n\n\Zjištěna chyba v připojení na gateway\n\n" rainbow wan d000f0 enable rainbow lan white auto rainbow wifi d000f0 enable; # check DNS - wan, lan, wifi - vse oranzove elif !(ping -c 1 192.168.0.1) && !(ping -c 1 8.8.8.8) then echo -e "\n\n\Zjištěna chyba v připojení na DNS\n\n" rainbow wan ff8c00 enable rainbow lan ff8c00 auto rainbow wifi ff8c00 enable; # check internet - wan, wifi - cervena elif !(ping -c 1 8.8.4.4) then echo -e "\n\n\Zjištěna chyba v připojení na internet\n\n" rainbow wan red enable rainbow lan white auto rainbow wifi red enable; # check VPN - wifi modra elif (ping -c 1 -w 2 192.168.100.2) || (ping -c 1 -w 2 192.168.100.3) then echo -e "\n\n\Zjištěn připojený VPN klient\n\n" rainbow wan green auto rainbow lan white auto rainbow wifi blue enable; # if all ready - standardni barvy else echo -e "\n\n\nSíť kompletně v pořádku\n\n" rainbow wan green auto rainbow lan white auto rainbow wifi green enable; fi
Pokud přesně nevíte jak nebo nepotřebujete ve skriptu nic měnit (což zde musíte, protože si musíte nastavit vlastní IP adresy DNS, brány,..), můžete rovnou využít stažení skriptu přímo a následně upravit v editoru:
wget 'http://www.s474n.com/download/Turris/connCheck.sh' > /root/sh/connCheck.sh
Nastavíme skript pomocí 'chmod +x' spustitelný:
chmod +x /root/sh/connCheck.sh
Nakonec vytvoříme soubor 'leds_control' v adresáři '/etc/cron.d/', tento zabezpečí automatické spouštění skriptu každé dvě minuty a také si zde můžete nastavit rozsah hodin a intenzitu svícení:
MAILTO="" # zmena intensity svetla den - noc 00 07 * * * root rainbow intensity 1 00 16 * * * root rainbow intensity 1 00 20 * * * root rainbow intensity 0 # overuje kazde 2 minuty */2 * * * * root /root/sh/connCheck.sh > /dev/null 2>&1
Nyní by vše mělo být nastaveno a zajištěno spouštění skriptu.