Страница 1 из 3

мой первый скрипт... не пашет

Добавлено: 10 авг 2013, 17:45
DES
нашел пример, скопировал, не работает.
В лог не пишет вообще ничего, рыжей лампочкой не моргает, чтобы это значило ?
:local PINGCOUNT 5;
:local PINGIP “192.168.88.100″;
:local POEINTERFACE “ether4-slave-local”;
:log info message=”PINGTEST START”;

:local PINGRESULT [/ping $PINGIP count=$PINGCOUNT];

:if ($PINGRESULT > 0) do={
:log info message=”PINGTEST OK”;
} else={
:log info message=”PINGTEST $POEINTERFACE POE OFF”;
/interface ethernet set ether4-slave-local poe-out=off;
:delay 10;
:log info message=”PINGTEST $POEINTERFACE POE ON”;
/interface ethernet set ether4-slave-local poe-out=on;
:delay 10;
}

:log info message=”PINGTEST END”;

Re: мой первый скрипт... не пашет

Добавлено: 10 авг 2013, 21:20
podarok66
Ну, просто скопировать мало, надо бы попробовать разобраться в том, что скопировал.
У меня модернизированный применительно к моей конфигурации заработал:

Код: Выделить всё

:local PingCount 5;
:local PingIP 8.8.8.8;
:local Int ether3;
:log info "Start ping test";

:local Result [/ping $PingIP count=$PingCount interface=ether2];

:if ($Result > 0) do={
:log info "Test OK";
} ;
:if ($Result = 0) do={
:log info "Test interface off";
/interface ethernet set $Int disable=yes;
:delay 10;
:log info "Test interface on";
/interface ethernet set $Int disable=no;
}

:log info "Test END";

А у Вас переменные вводятся в текст лога, но в командах почему-то не участвуют. (В частности $POEINTERFACE). Уж если Вы решили пользоваться скриптами, бегло хотя бы почитайте Мануал
Кстати, я так и не разобрался парой do...else У меня, если присутствует else , вечно какие-то траблы со скриптом, не хочет работать. Поэтому я в последнее время избегаю второй части (else). Именно поэтому у меня две if...
Нашелся бы человек, объяснил в двух словах, чего там нужно избегать, и какие правила соблюдать. Мы бы ему спасибо сказали...

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 11:34
DES
вставил первой строкой копипасту
:log info "Start ping test";
все равно ничего в лог не выводится.
смотрю в winbox->log
то что изменил скрипт, система записала в лог, то что я запустил свой скрипт показывает счетчик запусков скрипта
а в логе пусто.

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 13:32
podarok66
Простите, но копипаста не прокатит. Скрипт может довольно сильно видоизменяться в зависимости от конфигурации сети. Никто за Вас этот вопрос изучать не станет. Ссылку на мануал я дал. Пример, как может измениться скрипт, если сеть построена по-иному, тоже вывесил. Свои проблемы по поводу if=>do=>else рассказал, способ обхода, пусть и корявенький в примере. Остальное только за Вами...

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 17:01
DES
спс, у меня 25 лет стажа программиста.

вот такая конструкция работает нормально
:if ($PINGRESULT = 0) do={:log info message="PINGTEST not OK"} else {:log info message="PINGTEST OK"}

а от такая не будет работать:
:if ($PINGRESULT = 0) do={:log info message="PINGTEST not OK"}
else {:log info message="PINGTEST OK"}

но вот такая работает
:if ($PINGRESULT = 0) do={:log info message="PINGTEST not OK"} else
{:log info message="PINGTEST OK"}

и и такую можно заставить работать (см. обратный слеш перед переводом строки)
:if ($PINGRESULT = 0) do={:log info message="PINGTEST not OK"} \
else {:log info message="PINGTEST OK"}

и мой скрипт заработал:

:log info "PINGTEST START";
:local PINGCOUNT 5;
:local PINGIP "192.168.88.5";
:local POEINTERFACE "ether5-slave-local";
:local PINGRESULT [/ping $PINGIP count=$PINGCOUNT];
:if ($PINGRESULT > 0) do={
:log info "PINGTEST OK"} else={
:log info "PINGTEST $POEINTERFACE POE OFF";
/interface ethernet set $POEINTERFACE poe-out=off;
:log info message="Delay 10";
:delay 10;
:log info message="PINGTEST $POEINTERFACE POE FORCED-ON";
/interface ethernet set $POEINTERFACE poe-out=forced-on
}
:log info "PINGTEST END";

Что-то не найду как передать параметры в скрипт запущенный из шедуллера.

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 19:05
podarok66
Ну вот видите, Вы разобрались и в скрипте, и мой вопрос решили :D
Поэтому спасибо именно Вам :D

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 20:49
DES
может кто подскажет если 750-й подключен к другому роутеру по порту 2-5, (не wan).
Как настроить шлюз ?
ну например, чтобы микротик стал клиентом NTP на любом порту кроме WAN

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 21:05
Dragon_Knight
DES, нету в микротике WAN порта. ссылка

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 21:19
podarok66
Вам бы схемку нарисовать, а то все как-то расплывчато у Вас.

Re: мой первый скрипт... не пашет

Добавлено: 11 авг 2013, 21:33
Dragon_Knight
Согласен с podarok66, нарисуйте схему , с адресами, чего нужно получить. Это касается и соседней вашей темы.