Zdravím,
mám prosbu. Měl jsem RouteOS 5.9 -> upgrade na 6.37.
Od té doby mám zacyklené odesílání mailů o stavu IP, které není moje dílo - našel jsem ho na internetu a použil ho.
Funguje to tak, že do Address listu založím "IPTest" a komentář napíšu "zařízení XY".
Pak spustím tento skritp, pro všechny položky v Address Listu to udělá skritp "IPTestNameČÍSLO" a do scheduleru to udělá jednotlivé plány, jak se to má spouštět.
:local ip
:local com
:local counter
:local initscript
:global IPTestName
:set IPTestName ""
:set counter 0
:foreach i in=[/system script find] do={
:if ([:find [/system script get $i name] "IPTest"]=0) do={
/system script remove $i
}
}
:foreach i in=[/system scheduler find] do={
:if ([:find [/system scheduler get $i name] "IPTest"]=0) do={
/system scheduler remove $i
}
}
:foreach i in=[/ip firewall address-list find list=IPTest] do={
:set ip [/ip firewall address-list get $i address]
:set com [/ip firewall address-list get $i comment]
:set initscript ($initscript.":global IPTest".$counter."\r\n")
:if [/ip firewall address-list get $i disabled] do={:set initscript ($initscript.":set IPTest".$counter." 2\r\n") }
/system script add name=("IPTest".$counter) policy=ftp,write,read,test,winbox source=("#Testuje server ".$com.", IP ".$ip."\r\n:global IPTest".$counter."\r\n:global IPTestStatusDown\r\n:global IPTestStatusUp\r\n\r\n:if ([/ping ".$ip." count=5] = 0) do={\r\n :if (\$IPTest".$counter." = 1) do={\r\n :set IPTest".$counter." 2\r\n :set IPTestStatusDown (\$IPTestStatusDown . \"".$com.", \")\r\n :foreach i in=[/ip firewall address-list find list=IPTest comment=".$com."] do={/ip firewall address-list disable \$i}\r\n }\r\n :if (\$IPTest".$counter." = 0) do={:set IPTest".$counter." 1}\r\n } else={\r\n :if (\$IPTest".$counter." = 2) do={\r\n :set IPTestStatusUp (\$IPTestStatusUp . \"".$com.", \") \r\n :foreach i in=[/ip firewall address-list find list=IPTest comment=".$com."] do={/ip firewall address-list enable \$i}\r\n }\r\n :set IPTest".$counter." 0\r\n }\r\n}")
/system scheduler add name=("IPTest".$counter) start-time=0:1:0 interval=0:2:0 on-event=("IPTest".$counter)
:set IPTestName ($IPTestName.",".$com)
:set counter ($counter+1)
}
/system script add name=IPTestInit policy=ftp,write,read,test,winbox source=($initscript)
/system script run IPTestInit
/system script remove IPTestInit
Tento skript je ten, co to dle mého testuje:
:local email xxx@yyyy.cz
:global IPTestStatusDown
:global IPTestStatusUp
:if ($IPTestStatusDown!="") do={
/tool e-mail send to=$email subject=("Cas: " . [/system clock get time]) body=(" DOWN:".$IPTestStatusDown)
:set IPTestStatusDown ""
}
:if ($IPTestStatusUp!="") do={
/tool e-mail send to=$email subject=("Cas: " . [/system clock get time]) body=(" UP:".$IPTestStatusUp)
:set IPTestStatusUp ""
}
Spustím ten MakeScript a nic se nestane. namísto toho mi každé dvě minuty dojde UP, v zápětí DOWN.
Nemůžete na to prosím někdo mrknout nebo případě doporučit jiný skript? Na programování buňky nemám vůbec. Díky moc předem.