mikrotik scheduler запуск скрипта

Полезные скрипты для MikroTik RouterOS

Перезагрузка роутера, при зигрузке CPU

Копирование и применение последней актуальной понфигурации

То есть забираем по FTP lastconfig.backup и восстанавливаемся с него. FTP пользователь должен быть настроен, желательно с ограничением доступа по IP. Обратите внимание, что к FTP подключаемся по IP-адресу локального физического интерфейса, который доступен только между роутерами.

Этот скрипт ставим в планировщик на несколько минут позже выполнения скрипта резервного копирования.

И последний скрипт — применение настроек на резервном сервере. В нем также используется МАС для идентификации роутера.

Здесь меняем имя роутера, ip-адрес LAN-интерфейса и приоритет VRRP на меньший, чтобы роутер сделать слейвом. Запуск этого скрипта нужно поставить в автозагрузку. Изменения будут происходить на резервном сервере после копирования и применения последней актуальной конфигурации.

Резервное копирование

Проверка статуса роутера и выключение интерфейса

Подключение к динамическим серверам или сервисам, на примере pptp-соединения

Проверка синтаксиса скрипта

Настройка на 2 провайдера:

Блокировка трафика по времени:

Если нужно запретить трафик по времени ночью, скажем с 22:00 до 10:00 утра:

0) Стандартный способ – использовать два правила с временными промежутками 22:00:00-23:59:59 и 00:00:00-10:00:00

1) Использовать через запрет – Где-то в конце есть правило, которое запрещает, а конкретным правилом разрешать.

2) Использовать шедулер –
также создаём правило в файрволе, но не указываем конкретное время –

Источник

MikroTik Скрипт: Уведомление о успешном входе на устройство или простой парсер журнала MikroTik

Статья будет больше интересна специалистам использующим небольшой парк устройств (не использующим отдельный сервер, для системы мониторинга или логирования), домашним пользователям, тем кто в первый раз подступается к написанию скриптов устройства и тем у кого нет времени/желания разбираться.

mikrotik scheduler запуск скриптаПример email с событиями вход/выход пользователей

Написать свой скрипт меня сподвигло желание упростить монструозные скрипты, которые можно найти по этому запросу в интернете, выполняющие это несложное действие (пример скрипта с Wiki MikroTik), а так же показать почему инженеры MikroTik сделали невозможным простой способ парсинга, если вы не житель Лондона. 🙂

Статья разбирает пример уведомления о входе и выходе пользователя с устройства MikroTik, но так же покажет примеры:

Организация времени в журнале устройства;

Парсинг журнала устройства, поиск событий по критериям;

Отправка уведомлений на электронную почту;

Отправка сообщения Telegram.

Предыстория. Почему скрипты парсинга логов MikroTik «монструозны»?

Под монструозностью будем понимать большой объем логики скрипта и конструкции вида:

Они показывают умение администратора «оптимизировать» код, но здорово усложняют возможности понимания скриптов другими пользователями.

Но самую огромную роль в усложнение логики этого скрипта внесла сама компания MIkroTik, с интересной логикой журнала на устройстве. 🙂

Что может быть проще конструкции: «найди все события по времени старше последнего запуска с темой «account», запущенной простым казахстанцем (UTC+06)?

Это даже будет работать, ровно до 23:59:59 текущего дня. А после 12 ночи, скрипт превратится в тыкву А вот после 00:00:00 система начнет вываливать все события предыдущего дня. Почему?

Инженеры MikroTik большие оригиналы решившие сделать хранение записей журнала следующим образом: система хранит в журнале события сегодняшнего дня только с параметром времени, а чтобы не путаться, когда сменяется день, перезаписывает время событий добавляя дату, во все события «вчерашнего» дня. Для пользователя, в журнале событий все события отображаются дата/время, но сама система, событиям текущего дня присваивает только время.

Ну и где здесь оригинальность? А оригинальность в том, что MikroTik считает началом нового дня время 00:00:00 по UTC±0:00. Игнорируя часовой пояс самого устройства, т.е. у меня (UTC+06), до 6 утра, выдавались все уведомления за предыдущий день. В 06:00:00 Микротик перезаписывал всем событиям дату и скрипт снова начинал корректно работать.

Так что если вы не житель Лондона (UTC±0:00), для парсинга журнала устройства по времени вам приходилось использовать костыли, решая логикой скрипта проблему организации времени на устройстве.

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

Логика скрипта

Помимо параметров время события, текст события, MikroTik использует уникальный параметр id события, который мы будем использовать (.id уникален до перезапуска устройства, потом отчет начинается заново, с 0).

Формируем текст email, записывая новой строкой сообщение журнала MikroTik;

Формируем текст Telegram сообщения, используя %0D%0A для переноса строки;

Отправляем сформированное сообщение на email;

Отправляем сформированное сообщение в Telegram;

Записываем в ParseLogAccountEndArrayID последний ID сообщения с темой «account» (EndArrayID).

Создать скрипт

Для запуска скрипта необходимы разрешения: read, write, test, policy.

Код скрипта

Добавление скрипта в Планировщик

Для запуска скрипта необходимы разрешения: read, write, test, policy.

Или выполните в терминале:

Заключение

Надеюсь приведенный скрипт будет вам полезен, вы поймете как легко и просто парсить журнал устройства MikroTik выставляя триггеры по теме сообщения, или тексту сообщения.

mikrotik scheduler запуск скриптаПример Telegram сообщения

Возможные темы сообщений в журнале устройства, можно увидеть попытавшись создать правило Logging:

Для парсинга текста сообщений используйте регулярные выражения и команду вида:

[/log find where message

Установив более частое время проверки скрипта, вы можете выполнить дополнительные действия при входе/выходе пользователя, например автоматическое создание резервной копии (для тех кто любит править Firewall в пятницу вечером, забывая устанавливать MikroTik Safe Mode) или что еще подскажет воображение.

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

Если вы используете множество скриптов на вашем устройстве, указывать параметры почты и Telegram бота, в каждом из скриптов нерационально, особенно если возникнет необходимость изменить параметры. Я использую в своих скриптах вызов скриптов функций: «Отправить Email» и «Отправить сообщение Telegram», возможно и Вам это тоже будет полезно, упрощая управление устройством MikroTik.

Работа скрипта проверена на: hAP ac lite, RouterOS 6.47.8 (stable).

UPD 11.12.2020: Выставляйте права на запуск скрипта в Scheduler и на сам скрипт, как указано в статье: read, write, test, policy. Излишние права (выставляются по умолчанию новому скрипту) могут привести к появлению ошибки «could not run script ParseLogAccountEvents: not enough permissions«. Проверяйте журнал устройства.

Источник

iОнлайн

Как запустить скрипт на Microtik (Router OS)

Недавно я написал статью “Правила брэндмауэра для обеспечения внешней безопасности сети с помощью маршрутизатора Mikrotik (Router OS)“, но совсем забыл о том, что далеко не все начинающие администраторы знают как можно запустить на микротике готовый скрипт и что для этого нужно. В итоге написанная статья может пойти прахом, т.к. из-за недостатка информации о запуске скрипта, администратор не сможет им воспользоваться. Таким образом, чтобы не рассусоливать, я быстренько расскажу как можно запускать скрипты. Тут есть несколько вариантов. Так что кому интересно, добро пожаловать под кат.

И так. все варианты я буду рассматривать в двух типах. Как известно, маршрутизатор Mikrotik под управлением RouterOS можно администрировать тремя инструментами:

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

Вариант 1.1 Для самых терпеливых (WinBox)

Запускаем WinBox и подключаемся к маршрутизатору

mikrotik scheduler запуск скрипта

Нажимаем кнопку NEW TERMINAL. В результате у нас открывается окно терминала для ввода команд:

mikrotik scheduler запуск скрипта

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

Вариант 1.2 Для самых терпеливых (Веб-Интерфейс)

Заходим на веб интерфейс вашего маршрутизатора

mikrotik scheduler запуск скрипта

Введите логин и пароль для входа на маршрутизатор. В итоге мы попадаем на стартовую страницу WebFig маршрутизатора:

mikrotik scheduler запуск скрипта

Теперь сверху выбираем пункт TERMINAL

mikrotik scheduler запуск скрипта

В результате у нас открывается окно терминала для ввода команд:

mikrotik scheduler запуск скрипта

К сожалению, данный вариант точно так же неэффективен. Но имеет место быть.

Правда он отвечает на вопрос “Как открыть терминал в веб-интерфейсе Mikrotik”. Так что работа была проделана не зря.

Поэтому переходим ко второму варианту и правильному запуску готовых скриптов на Mikrotik.

Вариант 2. Запуск скриптов через редактор скриптов (WinBox).

Запускаем WinBox и подключаемся к маршрутизатору

mikrotik scheduler запуск скрипта

В меню с левой стороны выбираем пункт SYSTEM и в выпавшем меню выбираем пункт SCRIPT

mikrotik scheduler запуск скрипта

В итоге у нас открывается окно редактора скриптов.

mikrotik scheduler запуск скрипта

Ну а теперь дело техники. Нажимаем на знак ” + ” и открывается окно добавления нового скрипта:

mikrotik scheduler запуск скрипта

Теперь в поле NAME пишем имя вашего скрипта. Пишите какое нравится.

В поле POLICY можно выставить область действия скрипта. Если не знаете что это такое, то проверьте чтобы стояли все галки и не заморачивайтесь.

В поле SOURCE нужно вставить текст Вашего скрипта. Все просто копируем текст скрипта из источника, вставляем в это поле.

После того как назвали скрипт, выставили политики и вставили текст скрипта, жмем кнопку APPLY. Теперь у вас появляется выбор. Вы можете нажать кнопку RUN SCRIPT и ваш скрипт выполнится. Либо OK и окно со скриптом закроется и скрипт сохранится в памяти маршрутизатора. Либо нажать кнопку REMOVE и все ваши старания удалятся.

Лично я применяю следующий сценарий:

Заполняю указанные поля, потом жму APPLY, потом запускаю скрипт, а потом все удаляю. Удобно.

Если вам скрипт нужно запускать регулярно, то его можно сохранить, а потом запускать прямо из списка. Выглядит это так:

mikrotik scheduler запуск скрипта

Теперь рассмотрим, как то же самое можно сделать через WEB-Интерфейс.

Вариант 3. Запуск через редактор скриптов в WEB-интерфейсе

Заходим на веб интерфейс вашего маршрутизатора

mikrotik scheduler запуск скрипта

Введите логин и пароль для входа на маршрутизатор.

В меню с левой стороны выбираем пункт SYSTEM и в выпавшем меню выбираем пункт SCRIPT

mikrotik scheduler запуск скрипта

Ну а теперь дело техники. Нажимаем на кнопку ADD NEW и открывается окно добавления нового скрипта:

mikrotik scheduler запуск скрипта

Далее можно действовать точно так же, как было описано в варианте 2.

Вот как-то так. Надеюсь, что информация оказалась для Вас полезной. Спасибо что посетили мой сайт.

Источник

MikroTik: Как отключить (включить) интерфейс по расписанию

Разберем несколько способов отключить (включить) сетевой интерфейс MikroTik или отключить интернет, по расписанию: правило Firewall, NAT, планировщик заданий MikroTik или скрипт.

Содержание

Firewall правило: как отключить (включить) интерфейс по расписанию

Чтобы отключить или включить интерфейсы по расписанию, можно использовать настройку правила межсетевого экрана (Firewall) на вкладке Extra.

⚠️ Для работы правила, интерфейс должен являться master интерфейсом.

Например: ограничим работу WiFi интерфейса (wlan2-5GHz) в нерабочее время, с 19:00 до 07:00.

Если вы желаете запретить работу интерфейса в субботу и воскресенье (полный день), установите значения времени:

mikrotik scheduler запуск скрипта

NAT: как разрешить (запретить) интернет по расписанию

Вы можете запрещать или разрешать доступ к интернету по времени, используя настройку правила masquerade (NAT).

Отредактируйте правило masquerade, на вкладке Extra:

mikrotik scheduler запуск скрипта

Планировщик: выключение (включение) интерфейса по времени

Выключите WiFi интерфейс wlan2-5GHz после 20:00:00, используя Планировщик MikroTik:

или выполните в терминале:

Включите WiFi интерфейс wlan2-5GHz с 08:00:00, используя Планировщик MikroTik:

или выполните в терминале:

mikrotik scheduler запуск скрипта

MikroTik скрипт: как отключить (включить) интерфейс

Выключать или включать интерфейс можно так же с помощью скрипта MikroTik и Планировщика заданий.

Создать скрипт

Укажите в скрипте следующие переменные:

Если скрипт не работает или работает некорректно, раскомментируйте строки :log (удалите символ # перед началом строки) и проверьте лог MikroTik при запуске скрипта.

Добавить скрипт в Планировщик

Для запуска скрипта необходимы разрешения: read, write, test, policy.

mikrotik scheduler запуск скрипта

🟢 Как отключить или включить интерфейс MikroTik по расписанию или разрешить (запретить) доступ к интернету по времени, обсуждалось в этой статье. Надеюсь вы выбрали подходящий способ управления состоянием интерфейса. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.

Скрипт проверен: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.48.1 (stable).

Источник

Универсальный скрипт переключения 2-х каналов интернета Mikrotik

Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

mikrotik scheduler запуск скрипта

В нашем распоряжении Mikrotik RB850Gx2, для которого мы будем писать скрипт (его работоспособность также проверена на моделях RB450G и RB951G-2HnD).

mikrotik scheduler запуск скрипта

Присвойте скрипту имя, например, script-check-inet

Что же будем в нем использовать?

Итак, для начала определим необходимые переменные:

где:
$firstInterface — имя нашего PPPoE-соединения основной линии связи.
$secondInterface — имя нашего Ethernet-соединения резервной линии.
$pingTo1 и $pingTo2 — IP-адреса ресурсов, которые будем «пинать».
$pingCount — количество пингов на каждый IP-адрес
$stableConnectFrom — процентное соотношение для определения «стабильности» Интернет-канала. Например, в нашем случае при потере свыше 30% пакетов пинга (`$pingStatus Создадим запись в шедулере

mikrotik scheduler запуск скрипта

mikrotik scheduler запуск скрипта

В поле `Name` введите имя записи, чтобы не запутаться.
Поле `Start Time` я выставил `00:00:00` для запуска ровно в полночь.
Интервал — 30 секунд
В поле `On Event` вписываем имя нашего скрипта — `script-check-inet`
И жмем «ОК».

Вот, собственно, и все!

Ниже под спойлером приведен полный код скрипта.

Так как мы ввели дополнительную переменную `$firstInterfaceName`, то удалось изменить эту конструкцию и добились работоспособности скрипта на всех перечисленных устройствах.

UPD 2

Код скрипта в очередной раз был обновлен. esudnik обратил внимание на проблему большого количества потерянных пакетов при активном подключении к сети. Таким образом, мы ввели дополнительную переменную (`stableConnectFrom`), используемую для определения процентного соотношения «качества» линии.

В примере указано значение переменной равное «70». Это значит, если процент успешно отправленных пакетов будет ниже 70%, скрипт активирует резервный канал.

UPD 3

Как заметил icCE, при использовании скрипта на прошивке 6.36rc10, выходит ошибка:

Прошивке не нравится «* 100«. Решение проблемы было простым — обрамить вычисляемые значения в дополнительные скобки, получив

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *