Turris Omnia - 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, respektive jako předělávka návodu v původní sekci Project : TURRIS zde na webu. 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 usr1 disable rainbow usr2 disable sleep 0.3 rainbow usr1 D000F0 enable rainbow usr2 disable sleep 0.2 rainbow usr1 disable rainbow usr2 D000F0 enable sleep 0.2 rainbow usr1 D000F0 enable rainbow usr2 disable sleep 0.2 rainbow usr1 disable rainbow usr2 D000F0 enable sleep 0.2 rainbow usr1 D000F0 enable rainbow usr2 disable sleep 0.2 rainbow usr1 disable rainbow usr2 D000F0 enable sleep 0.2 rainbow usr1 D000F0 enable rainbow usr2 disable sleep 0.2 rainbow usr1 disable rainbow usr2 D000F0 enable sleep 0.2 rainbow pwr green enable rainbow usr1 green enable rainbow usr2 green enable # --- check connection gateway, dns, internet --- # check gateway - wan+usr1+usr2 ruzova if !(ping -c 1 89.176.136.1) then echo -e "\n\n\Zjistena chyba v pripojeni na gateway\n\n" rainbow pwr green enable rainbow wan d000f0 auto rainbow lan white auto rainbow pci1 white auto rainbow pci1 white auto rainbow pci3 white auto rainbow usr1 d000f0 enable rainbow usr2 d000f0 enable; # check DNS - wan, lan, wifi, usr1, usr2 - vse oranzove elif !(ping -c 1 89.176.136.1) && !(ping -c 1 8.8.8.8) then echo -e "\n\n\Zjistena chyba v pripojeni na DNS\n\n" rainbow pwr green enable rainbow wan ff8c00 auto rainbow lan ff8c00 auto rainbow pci1 ff8c00 auto rainbow pci1 ff8c00 auto rainbow pci3 ff8c00 auto rainbow usr1 ff8c00 enable rainbow usr2 ff8c00 enable; # check internet - wan, usr1 a usr2 - cervena elif !(ping -c 1 8.8.4.4) then echo -e "\n\n\Zjistena chyba v pripojeni na internet\n\n" rainbow pwr green enable rainbow wan red auto rainbow lan white auto rainbow pci1 white auto rainbow pci1 white auto rainbow pci3 white auto rainbow usr1 red enable rainbow usr2 red enable; # check VPN - usr1 zelena, usr2 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\Zjisten pripojeny VPN klient\n\n" rainbow pwr green enable rainbow wan green auto rainbow lan white auto rainbow pci1 white auto rainbow pci1 white auto rainbow pci3 white auto rainbow usr1 green enable rainbow usr2 blue enable; # if all ready - standardni barvy, vse zelene, provoz bile else echo -e "\n\n\nSit kompletne v poradku\n\n" rainbow pwr green enable rainbow wan green auto rainbow lan white auto rainbow pci1 white auto rainbow pci1 white auto rainbow pci3 white auto rainbow usr1 green enable rainbow usr2 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/Omnia/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.