Skript na hlídání odpovědi na ping
Napsal: 05 May 2017 13:12
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.
Fórum československých telekomunikací
https://classic.ispforum.cz/
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]
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"];
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"];
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"];
sacnok píše:Díky, jak často pak pouštíte ten IP_TEST
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"];
----
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"