Jump to content
Калькуляторы

Помогите со скриптом перезагрузки SXT

Доброго времени суток! Какое-то время назад я писал здесь о своих проблемах (рвется связь двух SXT Lite5 IP 10.0.0.1 и 10.0.0.2, подключены по nv2, в логе при обрыве wlan1: disconnected, control frame timeout). Уже пробовал c настройками так и этак, глюк, видимо, аппаратный и не лечится. от протокола не зависит - nstreme, nv2+nstreme то же самое. прошивки на обоих 6.35

 

писал такой скрипт ребута wlan1(нашел аналог в интернете и немного переделал под себя):

 

scheduler

 

wlanchecking

start date jan/01/1970

start time 00:08:00

interval 00:17:00

 

on event

/system script run reboot-mwlan

 

____

script list

script reboot-mwlan

 

 

source

:delay 3;

:if ([/ping 10.0.0.2 interval=2 count=8] =0) do={

:log info "my ping u2 netwatch is down_reboot wlan1" ;

:interface wireless disable wlan1;

:delay 2;

:interface wireless enable wlan1;

}

___

netwatch

 

netwatch host 10.0.0.2

interval 00:05:00

timeout 1000

on down

/system script run reboot-mwlan

 

____

он иногда помогал, иногда нет. закономерность не выявлена.

неудобно, что при отсутствии связи такой скрипт будет работать постоянно и ребутит.

 

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

 

дело еще в том, что базовая точка включается с 8 утра до 10 вечера, а вторая точка в некоторые дни (выходные например) просто не подключается, а в обычные дни может включиться, например, с 12 часов дня. поэтому не хотелось бы перезагружать базовую точку много раз.

в связи с этим прошу помочь со скриптом, который бы полностью ребутил первую точку один раз после получения состояния wlan1: disconnected, control frame timeout.

 

плюс такого скрипта в том, что если подключения в этот день еще не было, ничего перезагружаться не должно - если не было connect'а, то и disconnect'а не последует (лог прикрепил)

 

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

 

ПРОШУ ПОМОЧЬ!

post-124642-077420700 1475935026_thumb.jpg

Share this post


Link to post
Share on other sites

Еще сыпану мистики). выяснилось вот что - такое поведение у второй точки только при подключенном к ее Ethernet порту WAN порта роутера TP-Link tl-wr1043nd (для раздачи интернета на месте).

при прямом подключении к SXT ноутбука с сетевухой 100мбит или если просто оставить точку без подключения - имеем стабильный линк. используется РоЕ из комплекта SXT. у тп-линка гигабитные порты, т.е. используются все пары кабеля.

понимаю, что глупость, но может ли это как-то влиять на микротик и имеет ли смысл вообще пробовать развязаться от гигабитной части с помощью кабеля только со 100мбит парами ?

Share this post


Link to post
Share on other sites

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

 

Для начала зайдите в system/scheduler и удалите задание wlanchecking, оно не понадобится.

 

В system/scripts создайте скрипт с именем down (имена везде пишите с маленькой буквы) и текстом:

 

/delay 40s

:local check [/ping 10.0.0.2 count=3 interval=1000ms];

:local status [ /interface wireless get [find name=wlan1] comment];

:if (check =0 and status="Connected") do={

/interface wireless set [find name=wlan1] comment="Disconnected";

/ log error "Connection to 10.0.0.2 down..Rebooting"

/delay 1s

/system reboot

}

 

 

Затем создайте второй скрипт с именем up и текстом

 

/interface wireless set [find name=wlan1] comment="Connected";

 

 

зайдите в tools/netwatch и отредактируйте хост 10.0.0.2. Во вкладке Dowm напишите down (это имя вашего первого скрипта) во вкладке Up соответственно up

 

Также рекомендую поставить интервал проверки не более 1 минуты.

 

Перезагрузите микротик

 

Скрипт работает очень просто: Netwatch с определенным интервалом проверяет хост 10.0.0.2 и как только хост стал недоступен, срабатывает событие Down и запускается скрипт down

Скрипт проверяет комментарий к интерфейсу wlan1 и если он установлен "Connected" скрипт считает что это первая перезагрузка устройства с момента потери беспроводного соединения и еще раз проверяет доступность хоста и если хост по прежнему недоступен, то он перезагружает роутер и при этом добавляет к интерфейсу Wlan1 коммент Disconnected и пишет в лог инфу про перезагрузку.

 

после перезагрузки соединение восстановилось и срабатывает скрипт UP котрый добавляет коммент"connected" к интерфейсу wlan1. и роутер готов снова перезагрузится в случае потери соединения.

 

Если после перезагрузки соединение не восстановилось, (например вы сами отключились от базы), то скрипт перезагрузки не сработает , так как коммент на интерфейсе wlan1 так и остался "Disconnected". Так реализована защита от постоянной перезагрузки при потере соединения.

 

Минус у этого способа контроля: роутер будет один раз перегружаться при потере соединения, и неважно вы его разорвали или нет. Но лишняя перезагрузка раз в сутки не помешает=)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.