Страница 1 из 2
NetWatch
Добавлено: 28 окт 2016, 15:54
overdriven
Приветствую!
Существует ли способ отложить запуск NetWatch на какое-то время? Пока ppp интерфесы не поднялись, интернета нет, NetWatch откровенно пакастит..
Пытался его в расписании на disabled поменять, так он все равно скрипт перезапуска модема запустить успевает...
Ну или, к примеру, в down скрипте как-то описать, что если uptime < 1 минуты, то остановить выполнение скрипта...
Re: NetWatch
Добавлено: 28 окт 2016, 21:40
podarok66
В самом начале скрипта Up первая команда :delay 30 даст паузу 30 секунд. Должно хватить...
Ну или например шедулер сделать такого типа:
Код: Выделить всё
/system scheduler
add name=netwatch on-event="/tool netwatch set [find comment="delayed_start"] disabled=yes;\r\
\n:delay 60;\r\
\ntool netwatch set [find comment=1] disabled=no;" start-time=startup
А вашему правилу в нетватч добавить comment="delayed_start". Теперь при старте правило будет деактивироваться и опять стартовать через минуту...
Выбирайте

Re: NetWatch
Добавлено: 07 ноя 2016, 20:44
overdriven
Пробовал через планировщик первым делом останавливать NetWatch. Для проверки в "Down" нетвотча добавил команду:
:log warning message="NetWatch: Ping failed"
Так вот, он успевает написать "Ping failed" в лог...

Re: NetWatch
Добавлено: 07 ноя 2016, 21:03
KARaS'b
Как-то так, только лучше собрать это в скрипт, а уже нетвочем его запускать, а то не уверен что "local" отработает правильно.
Код: Выделить всё
:local Uptime [/system resource get uptime];
:if ($Uptime>00:01:00) do={перезапуск модема}
Re: NetWatch
Добавлено: 07 ноя 2016, 21:33
podarok66
overdriven писал(а):Пробовал через планировщик первым делом останавливать NetWatch. Для проверки в "Down" нетвотча добавил команду:
:log warning message="NetWatch: Ping failed"
Так вот, он успевает написать "Ping failed" в лог...

Ну а если написать?
Код: Выделить всё
:delay 30;
:log warning message="NetWatch: Ping failed"
Дайте ему паузу. Он же по определению должен стартовать и работать даже в условиях полного зависа. Следовательно и стартует он сам по себе, а не когда все загрузится
Re: NetWatch
Добавлено: 07 ноя 2016, 21:46
overdriven
podarok66 писал(а):overdriven писал(а):Пробовал через планировщик первым делом останавливать NetWatch. Для проверки в "Down" нетвотча добавил команду:
:log warning message="NetWatch: Ping failed"
Так вот, он успевает написать "Ping failed" в лог...

Ну а если написать?
Код: Выделить всё
:delay 30;
:log warning message="NetWatch: Ping failed"
Дайте ему паузу. Он же по определению должен стартовать и работать даже в условиях полного зависа. Следовательно и стартует он сам по себе, а не когда все загрузится
И вот, мы подошли к самому интересному. Я так и делал. Пауза, а затем скрипт перезагрузки 3Г модема. После того, как снова разрешаешь NetWatch, он продолжает выполнять начатый скрипт и перезагружает модем. Эдакий терминатор, который во что бы то не стало должен выполнить свою миссию...

А можно ли написать условие, если uptime < 2 минут прервать выполнение скрипта?
Re: NetWatch
Добавлено: 08 ноя 2016, 11:56
podarok66
Ну вы смотрите. Насколько я понимаю, вы хотите завязать отработку какого-то скрипта, связанного с 3Г-модемом, вернее его функционированием. Но я же писал, что Нетватч стартует независимо от системных установок. Главное, чтобы он был активирован. А модем стартует после полного старта системы. А если отказаться от Нетватч, а использовать связку Шедулер-Скрипт? В шедулере есть вариант запуска startup, это когда после старта системы отрабатывает этот шедулер.
Re: NetWatch
Добавлено: 08 ноя 2016, 16:36
overdriven
podarok66 писал(а):Ну вы смотрите. Насколько я понимаю, вы хотите завязать отработку какого-то скрипта, связанного с 3Г-модемом, вернее его функционированием. Но я же писал, что Нетватч стартует независимо от системных установок. Главное, чтобы он был активирован. А модем стартует после полного старта системы. А если отказаться от Нетватч, а использовать связку Шедулер-Скрипт? В шедулере есть вариант запуска startup, это когда после старта системы отрабатывает этот шедулер.
Поясню свою задумку.
Есть 3Г модем. Ему нужно время на инициализацию, чтобы определить сеть зарегистрироваться там и т.д. Пока он это не сделал, интерфес PPP-OUT поднимать смысла нет. А как, по моим наблюдениям, даже вредит. Поэтому сделано следущее:
1. При запуске микротика отключаем ppp-out интерфейс
2. Для полной уверенности, перезагружаем модем отключением питания на 3-5 секунд (было замечено, что если перезапустить микротик без отключения
питания, интерфес не поднимался)
3. Ждем 30 секунд
4. Включаем ppp-out
При таком раскладе, соединение проходит на ура. т.е. с первого раза.
Затем появилась необходимость, чтобы микротик контролировал соединение. Так как были замечены случаи отсутствия связи.
Вот тут, все и началось. Во первых, срипт запланированный на старт, запускался одновременно со скриптом от NetWatch (так как сразу при старте NetWatch видит отсутствие пинга) и эти оба питались перезагружать модем. В результате выполнение скрипта останавливалось.
Также стало ясно, что единажды пропущенный пинг еще не означает, что модем необходимо перезагружать. Тут по хорошему, еще пару других адресов пингануть с паузами секунд по 5-10. Если нет пинга, тогда уже перегружать. Но такой скрипт я еще не написал, так как новичок я. Если кто дочитал до этого места и может помочь с этим скриптом, был бы признателен.
Re: NetWatch
Добавлено: 08 ноя 2016, 17:45
KARaS'b
Прям готовое решение.
Код: Выделить всё
:local PingCount 3;
:local One 8.8.8.8;
:local Too 8.8.4.4;
:local ResultOne [/ping count=$PingCount $One interface=ether1];
:local ResultToo [/ping count=$PingCount $Too interface=ether1];
:local Uptime [/system resource get uptime];
:if ($ResultOne=0 && $ResultToo=0 && $Uptime>00:05:00) do={/system shutdown}
Re: NetWatch
Добавлено: 08 ноя 2016, 18:01
overdriven