Меню
Контакты
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Скрипт перезапуска POE для зависшего устройства

 19 Июл 2012    MikroTik, Scripts

В очередной раз фирма MikroTik порадовала нас своим новшеством, а именно — возможностью подавать POE-питание на локальные порты устройства с током потребления до 500 мА на порт.

 

Interface List

Рис.1. Interface List.

 

В этой статье мы рассмотрим, как используя данную возможность сделать перезагрузку зависшего устройства, подключенного и получающего питание от RB750UP.

Бывают редкие ситуации, когда то или иное оборудование в силу то ли программной несовершенности, то ли от еще каких-либо причин перестаёт отвечать на запросы и не выполняет возложенных на него задач. В таких ситуациях приходится просто перезагружать данное устройство по питанию.

А что делать, если нет возможности постоянно «мониторить» такие устройства вручную, но и отказаться от них тоже нет возможности?

Допустим, что к нашему MikroTik-у подключено одно такое устройство.

192.168.88.1 — локальный адрес MikroTik (по умолчанию);

192.168.88.100 — наше устройство (находится в нашей локальной сети) подключено к 4-му порту (ether4-slave-local).

Создадим скрипт:

 

Script List

Рис.2. Script List.

 

Имя скрипта PING_TEST_POE

: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";

 

Создаём переменные и присваиваем им значения

:local - имя переменной, значение;

:local PINGCOUNT 5; - количество посылаемых пингов;

:local PINGIP "192.168.88.100"; - адрес нашего устройства;

:local POEINTERFACE "ether4-slave-local"; - интерфейс, на котором мы будем управлять питанием;

:log info message="PINGTEST START"; - пишем в лог PINGTEST START;

:local PINGRESULT [/ping $PINGIP count=$PINGCOUNT]; - пингуем наш адрес и результат заносим в переменную PINGRESULT;

:if ($PINGRESULT > 0) do={ - анализируем переменную PINGRESULT, если отсутствуют ошибки, то пишем в лог:

:log info message="PINGTEST OK"; PINGTEST OK

} else={ - если наше устройство не отвечает, то:

:log info message="PINGTEST $POEINTERFACE POE OFF"; - пишем в лог PINGTEST $POEINTERFACE POE OFF и...

/interface ethernet set ether4-slave-local poe-out=off; - выключаем POE для нашего устройства (на 4-м порту)

:delay 10; - выжидаем 10 секунд;

:log info message="PINGTEST $POEINTERFACE POE ON"; - пишем в лог PINGTEST $POEINTERFACE POE ON и...

/interface ethernet set ether4-slave-local poe-out=on; - включаем POE для нашего устройства (на 4-м порту)

:delay 10; - выжидаем 10 секунд, поскольку включение POE происходит не сразу

:log info message="PINGTEST END"; - пишем в лог PINGTEST END

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

Если устройство функционирует нормально:

 

Скрипт перезапуска POE для зависшего устройства

Рис.3. Устройство функционирует нормально.

 

Если оно не отвечает на пинги:

 

Скрипт перезапуска POE для зависшего устройства

Рис.4. Устройство не отвечает на пинги.

 

Ну и для достижения состояния «полной автоматизации» нам нужно, чтобы скрипт запускался периодически и проверял наше устройство. Для этого обратимся к планировщику (System-Scheduler).

 

Планировщик

Рис.5. Планировщик.

 

Итак, что мы видим: 

Name - наглядное имя задачи;

Interval -период в 10 мин (ЧЧ:ММ:СС);

On Event: «/system script run PING_TEST_POE» - собственно выполняемое действие, запуск нашего скрипта.

 

Сергей Бражник специально для ASP24.