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

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
DES
Сообщения: 91
Зарегистрирован: 08 авг 2013, 21:12

нашел пример, скопировал, не работает.
В лог не пишет вообще ничего, рыжей лампочкой не моргает, чтобы это значило ?
: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”;


RB750UP with Firmware:3.19 && RouterOS:6.23
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

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

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

: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...
Нашелся бы человек, объяснил в двух словах, чего там нужно избегать, и какие правила соблюдать. Мы бы ему спасибо сказали...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
DES
Сообщения: 91
Зарегистрирован: 08 авг 2013, 21:12

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


RB750UP with Firmware:3.19 && RouterOS:6.23
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

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


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
DES
Сообщения: 91
Зарегистрирован: 08 авг 2013, 21:12

спс, у меня 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";

Что-то не найду как передать параметры в скрипт запущенный из шедуллера.
Последний раз редактировалось DES 11 авг 2013, 20:17, всего редактировалось 1 раз.


RB750UP with Firmware:3.19 && RouterOS:6.23
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

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


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
DES
Сообщения: 91
Зарегистрирован: 08 авг 2013, 21:12

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


RB750UP with Firmware:3.19 && RouterOS:6.23
Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

DES, нету в микротике WAN порта. ссылка


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Вам бы схемку нарисовать, а то все как-то расплывчато у Вас.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

Согласен с podarok66, нарисуйте схему , с адресами, чего нужно получить. Это касается и соседней вашей темы.


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
Ответить