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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this