Есть подозрение что спрашиваю "простой" вопрос, ответ на который лежит на поверхности,
но простите, не смог найти ни примеров и не получилось сделать самому script для моей задачи.
Вроде перелопатил https://wiki.mikrotik.com/wiki/Manual:Scripting и https://wiki.mikrotik.com/wiki/Manual:S ... g-examples, но не получается.
Тут на форуме тоже не нашел похожей обработки того что команда возвращает или плохо искал.
Ткните пожалуйста в что либо подобное, как разбирается вывод от команд.
Задача вроде бы "простая":
есть команда ping:
Код: Выделить всё
[admin@Router] > /ping 8.8.8.8 count=3 ttl=1
SEQ HOST SIZE TTL TIME STATUS
0 10.*.*.1 84 64 1ms TTL exceeded
1 10.*.*.1 84 64 0ms TTL exceeded
2 10.*.*.1 84 64 1ms TTL exceeded
sent=3 received=0 packet-loss=100%
Код: Выделить всё
[admin@Router] > /ping 8.8.8.8 count=3 ttl=5
SEQ HOST SIZE TTL TIME STATUS
0 72.14.217.60 56 251 3ms TTL exceeded
1 72.14.217.60 56 251 5ms TTL exceeded
2 72.14.217.60 56 251 4ms TTL exceeded
sent=3 received=0 packet-loss=100%
как получить значения HOST, TIME, STATUS для каждого пига и среднее значения "packet-loss" ?
Заранее спасибо!
P.S. вот пробую... но это не работает...
Код: Выделить всё
:local pingssent 0;
:local pingloss 0;
:local pinglimit 4;
:local ttllimit 4;
/ping address=8.8.8.8 count=$pinglimit ttl=$ttllimit do={
:if ($sent = $pinglimit) do={
:set pingssent $"sent"
:if ($pingssent > 0) do={
:set pingloss $"packet-loss"
}
}
}
:log info (Pings send: " . $pingssent ." lost: ". $pingloss )