Скрипт включения интерфейса и проверки канала

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Aleksandr.Barilo
Сообщения: 2
Зарегистрирован: 15 сен 2020, 06:26

День добрый столкнулся с такой проблемой , пытаюсь сделать скрипт который будет поднимать интерфейсы и проверять есть там связь

Но вот никак не могу понять где ошибка

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

/interface ethernet enable ether9
/interface pppoe-client enable 0
:delay 40;
:local checkip [/ping 8.8.4.4 count=25]
:if (checkip = 0) do={
system script modem_no_money
}
/interface pppoe-client disable 0
/interface ethernet disable ether9
Логика такая , интерфейс поднимается сперва физика потом PPPoE , затем проверка пинга ,если пинг не прошел запустить скрипт отправки мыла, затем отключение интерфейсов

но не работает даже такая конструкция

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

/interface pppoe-client enable 0
/interface ethernet enable ether9
/system script run testrst
:delay 50;
/interface pppoe-client disable 0
/interface ethernet disable ether9
После запуска скрипта соседнего этот перестает отрабатывать


Sertik
Сообщения: 1601
Зарегистрирован: 15 сен 2017, 09:03

Переменую надо проверять используя $перед её именем, то есть if $checkip.
Дальше Вы забыли /system script run. Ну и так далее. Проверяйте синтаксис в терминале.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Aleksandr.Barilo
Сообщения: 2
Зарегистрирован: 15 сен 2020, 06:26

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

:local checkip [/ping 8.8.4.4 count=25]
:if (checkip = 0) do={
system script modem_no_money
}
Так вот такая конструкция как отдельный скрипт вполне работает .
Вот впихнуть туда включение интерфейсов до и выключение после не выходит


Sertik
Сообщения: 1601
Зарегистрирован: 15 сен 2017, 09:03

Ну раз это у Вас работает, то пишите сами ... :-)
Зачем новичку укорачивать ? Писать скрипты нужно как следует, без сокращений.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
podarok66
Модератор
Сообщения: 4359
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Я бы всё же не стал так явно задавать

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

/interface ethernet enable ether9
/interface pppoe-client enable 0
Лучше идти общепринятым способом, в вашем случае могут иметь место разночтения со стороны системы. Это приведёт отказу скрипта.

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

/interface ethernet set [find name=ether9] disabled=no
/interface pppoe-client set [find name=pppoe-out1] disabled=no
Идём далее, зачем такое количество пингов? 3-5 вполне показывают доступен ресурс или нет. Потом, есть очень старый, но действенный пошаговый механизм работы с данным выражением:

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

/interface ethernet set [find name=ether9] disabled=no;
/interface pppoe-client set [find name=pppoe-out1] disabled=no;
:local checkip [/ping 8.8.4.4 count=5] interface=pppoe-out1];
:delay 40;
:local Net false;
:set Net ($checkip >= 3);
:put "Net=$Net";
:if (!$Net) do={
 /interface pppoe-client set [find name=pppoe-out1] disabled=yes;
 /interface ethernet set [find name=ether9] disabled=yes
 }
Не знаю насчёт работоспособности, надо проверять, у меня тестового роутера под рукой нет. Посмотрите у себя и отпишитесь.


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