Zdravím všechny,
v práci bylo potřeba udělat nějaký script na automatický restart wifi karty. Takže tady je.
Jen jednoduše vysvětlím jak funguje. Je potřeba nejdříve nadefinovat IP adresy na které ma pingat, v mikrotiku se dá pingat i na MAC adresy což se muže někdy hodit.
Dále tam vidíte podminku "while" cyklicky počítá od 0 do 10 pak se ukončí a program postupuje dál, v cyklu podmínky se při každém průchodu přičte do proměnné "i" jednička. Podmínku "while" můžete předčasně ukončit. To právě využíva ping na nějaké zařízení.
Když skončí cyklus "while" přejde se do testovaní proměnné "i" a pokud její hodnota dosáhne 10 tak se vykoná restart wifi karty. Též se zapíše do logu a na konec se pošle email.
Doufám, že jsem to stručně vysvětlil a že jste tomu pochopili.
#Zde se nastavi ip adresy nebo MAC adresy a nazev bezdratoveho interface
#Lovecka
:global IP1 "4C:5E:0C:EA:8B:AD"
#Karlik Karel
:global IP2 "4C:5E:0C:26:47:3F"
#Rybnikar
:global IP3 "4C:5E:0C:42:B2:33"
:global jmenointerface "Pivnice-1"
:global i 0
:while (($i < 10) && ([/ping $IP1 interval=3 count=1]=0) && ([/ping $IP2 interval=3 count=1]=0) && ([/ping $IP3 interval=3 count=1]=0) ) do {
:set i ($i + 1)
:delay 1
:if ($i=10) do={
:log info message="Restart wifi karty"
/interface disable [find name=$jmenointerface]
:delay 2s
/interface enable [find name=$jmenointerface]
/tool e-mail set address=123.456.789.123 from=mikrotik@mikrotik.cz
/tool e-mail send to=mikrotik@nwt.cz subject="$[/system identity get name]" body="Restart wifi karty"}
}
Pajka