Stránka 1 z 2

Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 13:12
od sacnok
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.

Re: Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 13:28
od georgee
Script


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"

Re: Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 13:41
od goblajz
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"];

Re: Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 13:48
od georgee
goblajz píše: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"];


Diky opraveno, to je to kdyz neumi nekdo pouzivat crtl+c a ctrl+v :-D

Re: Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 14:03
od sacnok
Díky, jak často pak pouštíte ten IP_TEST

Re: Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 14:07
od georgee
sacnok píše:Díky, jak často pak pouštíte ten IP_TEST

Mam ho kazdych 5 minut.

Re: Skript na hlídání odpovědi na ping

Napsal: 05 May 2017 14:32
od ludvik
Většině stačí funkce Netwatch.

Re: Skript na hlídání odpovědi na ping

Napsal: 06 May 2017 08:22
od sacnok
Je mezi tím skriptem a Netwatch jiný rozdíl, než ten že skript má "3 stavy" a Netwatch jenom 2

Re: Skript na hlídání odpovědi na ping

Napsal: 08 Dec 2017 12:37
od sacnok
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]

Re: Skript na hlídání odpovědi na ping

Napsal: 08 Dec 2017 13:58
od georgee
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

Re: Skript na hlídání odpovědi na ping

Napsal: 08 Dec 2017 15:46
od sacnok
Díky :thumbsup:

Dal by se skript upravit tak, že by posílal i zprávu při stavu č. 2 -> "server je nedostupny - cekam na overeni"

Re: Skript na hlídání odpovědi na ping

Napsal: 08 Dec 2017 16:09
od sacnok
sacnok píše:Díky :thumbsup:

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,")
}

Re: Skript na hlídání odpovědi na ping

Napsal: 21 Aug 2019 10:11
od mpcz
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

Re: Skript na hlídání odpovědi na ping

Napsal: 08 Sep 2019 12:52
od mpcz
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

Re: Skript na hlídání odpovědi na ping

Napsal: 08 Sep 2019 14:18
od CrazyApe
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í.