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
Skript na hlídání odpovědi na ping
Ahoj, máte někdo funkční skript, který mi na Mikrotiku bude hlídat, jestli mi odpovídá jedna, nebo více IP adres a v případě výpadku pošle mail.
0 x
Script
IP_TEST
startup
do Scheduleru si dej jak IP_TEST tak i startup ten nastavit po startu "start time - startup"
IP_TEST
Kód: Vybrat vše
# Testovani dostupnosti serveru
# script zjistuje dostupnost zadanych adres serveru a zmenu stavu zasila na udany mail
# script predpoklada tri globalni promenne A, B a C.
# A je pole IP adres oddelene carkami
# B je pole nazvu serveru oddelene carkami
# C je pole stavu
# 1=server je dostupny, 2=server je nedostupny - cekam,3=server je nedostupny
#Zde vyplnte vas email
:global email neco@email.local
#"natazeni" globalnich promennych
:global A;
:global B;
:global C;
:global stav ""
:global predchozistav ""
:global novystav ""
:global zprava ""
:for i from=0 to=([:len $A]-1) do={
:set predchozistav [:pick $C $i]
:put $predchozistav
:if ([/ping [:pick $A $i] count=5] = 0) do={
:if ($predchozistav = 2) do={
:set zprava ($zprava . [:pick $B $i] . " DOWN!,")
:log error ([:pick $B $i] . " DOWN!")
}
:set novystav 3
:if ($predchozistav = 1) do={
:set novystav 2
}
} else={
:if ($predchozistav = 3) do={
:set zprava ($zprava . [:pick $B $i] . " UP!,")
:log error ([:pick $B $i] . " UP!")
}
:set novystav 1
}
:set stav ($stav . "," . $novystav)
}
#Odesli zpravu
:if ([:len $zprava] > 0) do={
/tool e-mail send to=$email subject=("Cas: " . [/system clock get time]) body=$zprava
}
#uloz novy stav
:set C [:toarray $stav]
startup
Kód: Vybrat vše
:global A [:toarray "111.111.111.111,222.222.222.222,333.333.333.333"];
:global B [:toarray "router A,router B,router C"];
:global C [:toarray "1,1,1"];
do Scheduleru si dej jak IP_TEST tak i startup ten nastavit po startu "start time - startup"
Naposledy upravil(a) georgee dne 05 May 2017 13:48, celkem upraveno 3 x.
0 x
Startup má být jen
Kód: Vybrat vše
:global A [:toarray "111.111.111.111,222.222.222.222,333.333.333.333"];
:global B [:toarray "router A,router B,router C"];
:global C [:toarray "1,1,1"];
0 x
goblajz píše:Startup má být jenKód: Vybrat vše
:global A [:toarray "111.111.111.111,222.222.222.222,333.333.333.333"];
:global B [:toarray "router A,router B,router C"];
:global C [:toarray "1,1,1"];
Diky opraveno, to je to kdyz neumi nekdo pouzivat crtl+c a ctrl+v
0 x
sacnok píše:Díky, jak často pak pouštíte ten IP_TEST
Mam ho kazdych 5 minut.
0 x
Většině stačí funkce Netwatch.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.
Je mezi tím skriptem a Netwatch jiný rozdíl, než ten že skript má "3 stavy" a Netwatch jenom 2
0 x
Chtěl jsem rozběhat skript viz výše, ane chodí mi.
Nasměrujeme mě někdo kde mám chybu?
V proměných se mi nastaví proměnné A, B, C, email, predchozistav -> 1, zbytek zůstává nevyplněný
-- Ping_startup --
:global A [:toarray "8.8.8:8,77.75.77.53"];
:global B [:toarray "Google,Seznam"];
:global C [:toarray "1,1,1"];
----
-- Ping_monitor --
# Testovani dostupnosti serveru
# script zjistuje dostupnost zadanych adres serveru a zmenu stavu zasila na udany mail
# script predpoklada tri globalni promenne A, B a C.
# A je pole IP adres oddelene carkami
# B je pole nazvu serveru oddelene carkami
# C je pole stavu
# 1=server je dostupny, 2=server je nedostupny - cekam,3=server je nedostupny
#Zde vyplnte vas email
:global email sacnok@seznam.cz
#"natazeni" globalnich promennych
:global A;
:global B;
:global C;
:global stav ""
:global predchozistav ""
:global novystav ""
:global zprava ""
:for i from=0 to=([:len $A]-1) do={
:set predchozistav [:pick $C $i]
:put $predchozistav
:if ([/ping [:pick $A $i] count=5] = 0) do={
:if ($predchozistav = 2) do={
:set zprava ($zprava . [:pick $B $i] . " DOWN!,")
:log error ([:pick $B $i] . " DOWN!")
}
:set novystav 3
:if ($predchozistav = 1) do={
:set novystav 2
}
} else={
:if ($predchozistav = 3) do={
:set zprava ($zprava . [:pick $B $i] . " UP!,")
:log error ([:pick $B $i] . " UP!")
}
:set novystav 1
}
:set stav ($stav . "," . $novystav)
}
#Odesli zpravu
:if ([:len $zprava] > 0) do={
/tool e-mail send to=$email subject=("Cas: " . [/system clock get time]) body=$zprava
}
#uloz novy stav
:set C [:toarray $stav]
Nasměrujeme mě někdo kde mám chybu?
V proměných se mi nastaví proměnné A, B, C, email, predchozistav -> 1, zbytek zůstává nevyplněný
-- Ping_startup --
:global A [:toarray "8.8.8:8,77.75.77.53"];
:global B [:toarray "Google,Seznam"];
:global C [:toarray "1,1,1"];
----
-- Ping_monitor --
# Testovani dostupnosti serveru
# script zjistuje dostupnost zadanych adres serveru a zmenu stavu zasila na udany mail
# script predpoklada tri globalni promenne A, B a C.
# A je pole IP adres oddelene carkami
# B je pole nazvu serveru oddelene carkami
# C je pole stavu
# 1=server je dostupny, 2=server je nedostupny - cekam,3=server je nedostupny
#Zde vyplnte vas email
:global email sacnok@seznam.cz
#"natazeni" globalnich promennych
:global A;
:global B;
:global C;
:global stav ""
:global predchozistav ""
:global novystav ""
:global zprava ""
:for i from=0 to=([:len $A]-1) do={
:set predchozistav [:pick $C $i]
:put $predchozistav
:if ([/ping [:pick $A $i] count=5] = 0) do={
:if ($predchozistav = 2) do={
:set zprava ($zprava . [:pick $B $i] . " DOWN!,")
:log error ([:pick $B $i] . " DOWN!")
}
:set novystav 3
:if ($predchozistav = 1) do={
:set novystav 2
}
} else={
:if ($predchozistav = 3) do={
:set zprava ($zprava . [:pick $B $i] . " UP!,")
:log error ([:pick $B $i] . " UP!")
}
:set novystav 1
}
:set stav ($stav . "," . $novystav)
}
#Odesli zpravu
:if ([:len $zprava] > 0) do={
/tool e-mail send to=$email subject=("Cas: " . [/system clock get time]) body=$zprava
}
#uloz novy stav
:set C [:toarray $stav]
0 x
sacnok píše:Chtěl jsem rozběhat skript viz výše, ane chodí mi.
Nasměrujeme mě někdo kde mám chybu?
V proměných se mi nastaví proměnné A, B, C, email, predchozistav -> 1, zbytek zůstává nevyplněný
-- Ping_startup --
:global A [:toarray "8.8.8:8,77.75.77.53"];
:global B [:toarray "Google,Seznam"];
:global C [:toarray "1,1,1"];
----
Za prvé ta máš chybu
:global A [:toarray "8.8.8:8,77.75.77.53"];
a za druhé
:global C [:toarray "1,1,1"]; na :global C [:toarray "1,1"];
Máš jen na dvě adresy
0 x
Díky
Dal by se skript upravit tak, že by posílal i zprávu při stavu č. 2 -> "server je nedostupny - cekam na overeni"
Dal by se skript upravit tak, že by posílal i zprávu při stavu č. 2 -> "server je nedostupny - cekam na overeni"
0 x
sacnok píše:Díky
Dal by se skript upravit tak, že by posílal i zprávu při stavu č. 2 -> "server je nedostupny - cekam na overeni"
Tak jsem na to přišel, vložil jsem další řádek do místa, kde se nastavuje stav č. 2
}
:set novystav 3
:if ($predchozistav = 1) do={
:set novystav 2
:set zprava ($zprava . [:pick $B $i] . " Down - cekam 3 minuty na overeni,")
}
0 x
Používám podobný script skript, ale změnil jsem logiku výpisu. Tedy: pokud je v tabulce NETWATCH jeden nebo více cílů se statusem "down", vypíše je SMSka na telefonu (nastavitelně) jednou za 10/20/30 ... minut všechny zaráz pod sebou ve tvaru:
05:10 20aug 40.209 hospoda Dzban 3x (takto je v SMS vidět první řádek na displayi v okamžiku přijetí a říká, že ukryté - /po rozkliku/ jsou ještě 3 další záznamy)
40.211 skola
40.215 Novakovi
40.251 hala Sport
Přijde mi tento systém mnohem přehlednější než NETWATCH v základu, protože u něj při větším provozu velmi lehce docházelo k přehlédnutí poruchové SMS mezi jinými SMS zprávami z banky a emaily a také je z hromadného výpisu na první pohled rozpoznat, kde je na řetězeném spoji problém. Každé ráno a večer pošle stejný skript kontrolni SMS - "TEST" pro kontrolu, že systém funguje. Doporučuji.
Email na urgentní hlášky nepoužívám. Někdy se ty poštovní servery zavzdušní a poruchový email přijde klidně i na druhý den, běžně za několik hodin. mpcz, 20aug2019
05:10 20aug 40.209 hospoda Dzban 3x (takto je v SMS vidět první řádek na displayi v okamžiku přijetí a říká, že ukryté - /po rozkliku/ jsou ještě 3 další záznamy)
40.211 skola
40.215 Novakovi
40.251 hala Sport
Přijde mi tento systém mnohem přehlednější než NETWATCH v základu, protože u něj při větším provozu velmi lehce docházelo k přehlédnutí poruchové SMS mezi jinými SMS zprávami z banky a emaily a také je z hromadného výpisu na první pohled rozpoznat, kde je na řetězeném spoji problém. Každé ráno a večer pošle stejný skript kontrolni SMS - "TEST" pro kontrolu, že systém funguje. Doporučuji.
Email na urgentní hlášky nepoužívám. Někdy se ty poštovní servery zavzdušní a poruchový email přijde klidně i na druhý den, běžně za několik hodin. mpcz, 20aug2019
0 x
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
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
0 x
Asi to nen moc k tematu ale myslim, ze zbytecne slozite skriptovat neco takoveho. Primarne by si asi mel vyresit pricinu toho, ze musis za den 3x neco preladovat...a pak mas vypadky. Nejspis bude duvod ten, ze pouzivas nevhodne anteny(HW klient+ap) do prostredi v kterem nabizis sve sluzby a nebo je klient moc daleko od AP a nebo obojí dohromady . Nevim kolik mas lidi oproti třeba siti o kterou se staram ja ale ja přeladuju tak 1 sektor za 14 dnů a to nejsem v zadnem nezarusenem prostredi casto scanuju i 150+ sítí.
0 x