Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz
Skript na hlídání odpovědi na ping
Re: Skript na hlídání odpovědi na ping
Děkuji, chtěl jsem tam napsat, že o knížecí rady nestojím. Tak to píši až teď. Navíc, kde píši, že bych to 3x denně přelaďoval? Ze zkušenosti ale vím, že při nově vzniklém, trvalém rušení/legálním provozu je pak problém se do klienta s jedinou frekvencí ve scanu dostat. Takže proto. Nepřelaďuji ani jednou, antény jsou několikrát měněny. Ostatní klienti drží. Co se dalo vyzkoušel jsem. Prosím tedy: pokud víš něco o skriptu, ozvi se. Děkuji, mpcz, 8sep2019
0 x
mpcz píše:Zdravím, mám dotaz, než se pustím do vlastního boje. Nezahlédl někdo skript script, který zařídí, že?:
Klient má trvale v rozsahu scanu zadánu jen jednu frekvenci, která je nastavená na AP. Při ztrátě spojení s AP se tedy znovuspojí cobydup. Pokud ale technik na AP změní frekvenci na jinou, skript zařídí změnu rozsahu scanu na default nebo dle zadání. Tu novou zjištěnou zadá jako jedinou do rozsahu scanu. Něco mi říká, že by to nemuselo být složité, určitě něco takového už někoho napadlo a řešil to.
To je pouze má pracovní teorie, ale domnívám se, že by to mohlo podstatně vylepšit provoz na klientovi, který je neznámým zdrojem zarušen tak, že během dne i 3x spojení spadne, vlivem daného procesu znovupřipojování u MKT zbytečně i na cca 30 sec., čehož si klient zcela určitě povšimne.
Dík, mpcz, 8sep2019
Ta myšlenka má pár problémů:
- co když bude klient v době přelaďování offline? Pojedeš pak k němu to opravit?
- co když se přeladění "nepodaří" - např. vybraný kanál bude beznadějně "zahlušený"? Jak to pak přeladíš znova?
Pokud bych toto nutně musel řešit, udělal bych paralelně dvě věci:
- napsal skriptík pro "zamčení na frekvenci" na klientovi - spouštěl bych to třeba co minutu a pokud nebudu mít víc jak 5x signál, roztáhnu scanlist na celé pásmo. Naopak pokud se např. 4 hodiny frekvence nezměnila, scanlist bych omezil jen na danou frekvenci.
- připravil bych si hromadný skript pro "reset" uvedené funkcionality (tedy všechny klienty přepnout na plný scanlist a vynulovat "časovač".
0 x
Děkuji za názor a postřehy. Zatím si nemyslím, že by ta myšlenka měla vadu, ale jelikož mám již tradičně potíže s chápáním, počkám i na jiné názory.
Když to, co má udělat ten skript udělám ručně, situaci to velmi diametrálně změní k lepšímu a výpadek je dle mého z hlediska Tohoto klienta nepostřehnutelný. Samozřejmě na odstranění příčiny odpadnutí spojení se i nadále pracuje. mpcz, 8sep2019
Když to, co má udělat ten skript udělám ručně, situaci to velmi diametrálně změní k lepšímu a výpadek je dle mého z hlediska Tohoto klienta nepostřehnutelný. Samozřejmě na odstranění příčiny odpadnutí spojení se i nadále pracuje. mpcz, 8sep2019
0 x
Pocitam, ze pro vyvojae MikroTiku by to byla otazka 5 minut u obedoveho kaficka to doprogramovat primo do SW. Vzdyt to nemuze byt zadny problem. Kdyz na AP pranstavis kanal a das APPLY "rekni to" klientum at 5 sec zkousi kanal a pokud nic at proscanuji... ale proc ze ? Kdyz cekame na drivery pro nove sitovky uz 3 roky ... nejspis to jeste nikoho nenapadlo ze by to jako bylo fajn... Mne to sice nejak extra netrapi ale netvrdim ze by to nebyla fajn funkce....a to ostatne i spectral scan a background scan v NV2...
0 x
To už by ovšem mohli napsat kompletní provisioning klienta z AP (nebo ještě lépe z nadřezeného NMS) - třeba jako OMCI na GPONu. Jenomže ona je to pořád jen domácí wifi na steroidech.
1 x
Děkuji za názory, jen připomínám, že původní dotaz zněl: "Nezahlédl někdo skript script, který zařídí, že?: ..." Protože pokud to již někdo řešil, je zbytečné s tím trávit čas, pokud ne, pustím se neprodleně do boje se Sergejovým jazykem. O mechanismu skriptu mám poměrně jasno, alespoň doufám. mpcz, 8sep2019
0 x
Zdravím, tak skript je hotov, vypadá to, že funguje podle všech předpokladů a perfektně řeší popisovaný problém s odpojováním klienta. Testováno SXT v. 6.44.3. Zatím jsem nezaznamenal žádné negativní vlivy, výpadky, dříve 30-80 sekund se nyní odehrají v rámci jedné sekundy. Toho si nevšimnou ani uživatelé se vzálenou TV simkou, kterým se dříve rozpadl obraz na několik minut. A ano, vím, že se to má řešit jinak, ale někde se to rušení, či co to je odstranit prostě nedá nebo jen za neúnosných nákladů. Takto se to vyřešilo zdarma a ani se tam nemuselo jezdit. mpcz, 29sep2019
0 x
-
- Příspěvky: 326
- Registrován: 17 years ago
mpcz píše:Zdravím, tak skript je hotov, vypadá to, že funguje podle všech předpokladů a perfektně řeší popisovaný problém s odpojováním klienta. Testováno SXT v. 6.44.3. Zatím jsem nezaznamenal žádné negativní vlivy, výpadky, dříve 30-80 sekund se nyní odehrají v rámci jedné sekundy. Toho si nevšimnou ani uživatelé se vzálenou TV simkou, kterým se dříve rozpadl obraz na několik minut. A ano, vím, že se to má řešit jinak, ale někde se to rušení, či co to je odstranit prostě nedá nebo jen za neúnosných nákladů. Takto se to vyřešilo zdarma a ani se tam nemuselo jezdit. mpcz, 29sep2019
Zdravim ,čo takto postnut skript?
0 x
coolerman1 píše:mpcz píše:Zdravím, tak skript je hotov, vypadá to, že funguje podle všech předpokladů a perfektně řeší popisovaný problém s odpojováním klienta. Testováno SXT v. 6.44.3. Zatím jsem nezaznamenal žádné negativní vlivy, výpadky, dříve 30-80 sekund se nyní odehrají v rámci jedné sekundy. Toho si nevšimnou ani uživatelé se vzálenou TV simkou, kterým se dříve rozpadl obraz na několik minut. A ano, vím, že se to má řešit jinak, ale někde se to rušení, či co to je odstranit prostě nedá nebo jen za neúnosných nákladů. Takto se to vyřešilo zdarma a ani se tam nemuselo jezdit. mpcz, 29sep2019
Zdravim ,čo takto postnut skript?
Bez problému, jen to nějaký čas nechám běžet, jestli se něco nevyskytne. Protože to manipuluje s připojovacími údaji, byl bych nerad, aby se mi někdo "poděkoval" za zbytečnou projížďku. mpcz, 29sep2019
2 x
Tak zdá se, že ten globální záměr, zkrátit výpadek spojení u klienta z desítek sekund na jednu sekundu při mžikovém zarušení by (asi) mohl fungovat.
Zde je poslední verze, funkční. Pokud to někomu na něčem nepojede, ať si to upraví dle svého. Všechno je nastavitelné a okomentované. mpcz, 9dec2019
Výpis logu při změně situace na AP:
16:41:41 system,info,account user admin logged in from 192.168.0.26 via winbox
16:44:31 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita: lost connection, received deauth: unspecified (1) OFF/ON AP - simul. zarušení
16:44:32 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita established connection on 5640000, SSID skript vypadl pouze jeden ping
16:45:10 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita: lost connection, received deauth: unspecified (1) AP přešlo na jinou frekvenci
16:45:23 script,error Bezdratove rozhrani wlan1-konektivita je v chybnem stavu klient to zjistil
16:45:23 system,info device changed by admin a roztáhl rozsah scanu
16:45:37 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita established connection on 5700000, SSID skript a připojil se na novou frekv.
16:45:47 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita: lost connection, disabling
16:45:47 system,info device changed by admin zafixoval již novou f
16:45:47 script,info Bezdratove rozhrani wlan1-konektivita nyni funguje spravne a zůstal na ní
16:45:48 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita established connection on 5700000, SSID skript
16:47:41 system,info,account user admin logged in from 192.168.0.26 via telnet
Poslední verze skriptu (bez záruky), zrozeno a testováno v SXT ROS 6.44.3:
:local limitNeuspechu 10
:local limitUspechu 10
:local scanList "5400-5900"
:local interface [:pick [/interface wireless find where mode~".*station.*"]]
:if ([:len $interface] = 0) do={
/log error message="Nenalezeno rozhrani pro kontrolu pripojeni!"
:error "Ukoncuji"
}
:local interfaceName [/interface wireless get $interface name]
:delay 60
/log info message="Startuje kontrola pripojeni na $interfaceName"
while (true) do={
# vyhodnoceni nefunkcnosti
:local neuspechu 0
:do {
:delay 1
if ([/interface wireless get $interface running] = true) \
do={ :set neuspechu 0 } \
else={ :set neuspechu ($neuspechu + 1) }
} while=(neuspechu < $limitNeuspechu);
/log error message="Bezdratove rozhrani $interfaceName je v chybnem stavu"
# nastaveni vychoziho scan listu
/interface wireless set $interface scan-list="$scanList"
# odeslani mailu na pozadi
#:execute { /system script run scan_list_email }
# vyhodnoceni funkcnosti
:local uspechu 0
:local curFreq
:do {
:delay 1
if ([/interface wireless get $interface running] = true) \
do={ :set uspechu ($uspechu + 1) } \
else={ :set uspechu 0 }
:set curFreq ([/interface wireless monitor $interface once as-value]->"channel")
} while=(uspechu < $limitUspechu);
# nastaveni jedne frekvence do scan listu (te aktualni)
:local pos [:find "$curFreq" "/"]
:set curFreq [:pick "$curFreq" 0 $pos]
/interface wireless set $interface scan-list="$curFreq"
/log info message="Bezdratove rozhrani $interfaceName nyni funguje spravne"
}
Zde je poslední verze, funkční. Pokud to někomu na něčem nepojede, ať si to upraví dle svého. Všechno je nastavitelné a okomentované. mpcz, 9dec2019
Výpis logu při změně situace na AP:
16:41:41 system,info,account user admin logged in from 192.168.0.26 via winbox
16:44:31 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita: lost connection, received deauth: unspecified (1) OFF/ON AP - simul. zarušení
16:44:32 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita established connection on 5640000, SSID skript vypadl pouze jeden ping
16:45:10 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita: lost connection, received deauth: unspecified (1) AP přešlo na jinou frekvenci
16:45:23 script,error Bezdratove rozhrani wlan1-konektivita je v chybnem stavu klient to zjistil
16:45:23 system,info device changed by admin a roztáhl rozsah scanu
16:45:37 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita established connection on 5700000, SSID skript a připojil se na novou frekv.
16:45:47 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita: lost connection, disabling
16:45:47 system,info device changed by admin zafixoval již novou f
16:45:47 script,info Bezdratove rozhrani wlan1-konektivita nyni funguje spravne a zůstal na ní
16:45:48 wireless,info D4:CA:6D:A9:00:02@wlan1-konektivita established connection on 5700000, SSID skript
16:47:41 system,info,account user admin logged in from 192.168.0.26 via telnet
Poslední verze skriptu (bez záruky), zrozeno a testováno v SXT ROS 6.44.3:
:local limitNeuspechu 10
:local limitUspechu 10
:local scanList "5400-5900"
:local interface [:pick [/interface wireless find where mode~".*station.*"]]
:if ([:len $interface] = 0) do={
/log error message="Nenalezeno rozhrani pro kontrolu pripojeni!"
:error "Ukoncuji"
}
:local interfaceName [/interface wireless get $interface name]
:delay 60
/log info message="Startuje kontrola pripojeni na $interfaceName"
while (true) do={
# vyhodnoceni nefunkcnosti
:local neuspechu 0
:do {
:delay 1
if ([/interface wireless get $interface running] = true) \
do={ :set neuspechu 0 } \
else={ :set neuspechu ($neuspechu + 1) }
} while=(neuspechu < $limitNeuspechu);
/log error message="Bezdratove rozhrani $interfaceName je v chybnem stavu"
# nastaveni vychoziho scan listu
/interface wireless set $interface scan-list="$scanList"
# odeslani mailu na pozadi
#:execute { /system script run scan_list_email }
# vyhodnoceni funkcnosti
:local uspechu 0
:local curFreq
:do {
:delay 1
if ([/interface wireless get $interface running] = true) \
do={ :set uspechu ($uspechu + 1) } \
else={ :set uspechu 0 }
:set curFreq ([/interface wireless monitor $interface once as-value]->"channel")
} while=(uspechu < $limitUspechu);
# nastaveni jedne frekvence do scan listu (te aktualni)
:local pos [:find "$curFreq" "/"]
:set curFreq [:pick "$curFreq" 0 $pos]
/interface wireless set $interface scan-list="$curFreq"
/log info message="Bezdratove rozhrani $interfaceName nyni funguje spravne"
}
0 x