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.


Líbí se vám nebo pomohl vám text výše? Můžete mě pozvat na kávu. Sdílet na Facebooku Sdílet na Twitteru Vytisknout



Doporučuji: MePaBlu Copyright S474N ©2004-2024