родительский контроль

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Ответить
zon2004
Сообщения: 3
Зарегистрирован: 26 июн 2019, 11:44

родительский контроль

Сообщение zon2004 » 26 июн 2019, 12:04

Добрый день.
Подскажите пожалуйста. Пытаюсь написать скрипт который бы выключал интерфейс к которому подключен TV.
Сейчас в шедулере стоит просто в 10:00 включить интерфейс и в 12:00 выключить
Но хотелось бы с 8:00 до 18:00 чтобы интерфейс работал не более трех часов в не зависимости когда включили
набросал такое

Код: Выделить всё

:global u
/interface ethernet monitor eth2-lan once do={
:set u $status
}

:if ($u = "link-ok") do={ 
WorkTime++
}

:if (WorkTime >= 180) do={ 
/interface disable eth2-lan
}
Я не могу понять как worktime будет счетчиком. Ведь я его хочу добавить в шедулер. А там он один раз запуститься и все

Аватара пользователя
Chupaka
Сообщения: 2065
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: родительский контроль

Сообщение Chupaka » 26 июн 2019, 13:11

Добрый. Не совсем понимаю вопрос. У вас в шедулере скрипт будет выполняться каждую минуту ведь? Вот так он и будет счётчиком...

zon2004
Сообщения: 3
Зарегистрирован: 26 июн 2019, 11:44

Re: родительский контроль

Сообщение zon2004 » 26 июн 2019, 13:44

Ведь скрипт запускается заново ? и WorkTime при запуске не равен 0 ? Или микротик будет всегда хранить в памяти эту переменную ?
Тогда ее надо сбрасывать ?

Аватара пользователя
Chupaka
Сообщения: 2065
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: родительский контроль

Сообщение Chupaka » 26 июн 2019, 14:02

М-м-м, по диагонали пробежался, не заметил, что у вас это разные переменные.

global-переменные хранятся на роутере между запусками скрипта, посмотреть можно в System -> Scripts -> Environment. Ваша "$u" не должна быть global, объявите её как local. А вот затем ":global WorkTime;" и строку "WorkTime++" замените на ":set WorkTime ($WorkTime+1);"
Да, сбрасывать надо - например, в скрипте, который утром включает порт.

zon2004
Сообщения: 3
Зарегистрирован: 26 июн 2019, 11:44

Re: родительский контроль

Сообщение zon2004 » 26 июн 2019, 14:13

Спасибо большое.
рабочий скрипт

Код: Выделить всё

:global WorkTime
:local u
/interface ethernet monitor eth2-lan once do={
:set $u $status;
}

:if ($u = "link-ok") do={ 
:set WorkTime ($WorkTime+1)
}

:if ($WorkTime >= 140) do={ 
/interface disable eth2-lan
}

b1gst0ne
Сообщения: 9
Зарегистрирован: 30 янв 2018, 02:13

Re: родительский контроль

Сообщение b1gst0ne » 30 авг 2019, 06:30

Добрый день, чтобы не плодить темы спрошу тут ибо ситуации похожи.
Есть детская виртуальная wifi сеть, через планировщик настроил включение с 9 до 21 на 2 часа и отключение на 1 час. У интерфейса к которому подключена виртуальная сеть подключён по wifi телевизор, в момент отключения виртуального интерфейса телевизор ловит разрыв соединения из-за чего картинка замирает и приходится переключать канал или перезапускать видео. Так же было замечено ухудшение стабильности работы основного интерфейса и виртуального к концу дня. Появилась идея отключать не сам интерфейс, а отключить трафик на интерфейсе. Подскажите как через консоль отключить, а после включить весь трафик на интерфейсе?

Аватара пользователя
Chupaka
Сообщения: 2065
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: родительский контроль

Сообщение Chupaka » 30 авг 2019, 10:55

Добрый.
Версия RouterOS какая?
Как настроен доступ — виртуальный интерфейс имеет свою подсеть или находится в бридже?

Аватара пользователя
Sir_Prikol
Сообщения: 283
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: родительский контроль

Сообщение Sir_Prikol » 30 авг 2019, 11:43

zon2004 писал(а):
26 июн 2019, 14:13
Спасибо большое.
рабочий скрипт

Код: Выделить всё

:global WorkTime
:local u
/interface ethernet monitor eth2-lan once do={
:set $u $status;
}

:if ($u = "link-ok") do={ 
:set WorkTime ($WorkTime+1)
}

:if ($WorkTime >= 140) do={ 
/interface disable eth2-lan
}

Это до ближайшего ребута микротика, после ребута счётчик сбросится и время сдвинется, лучше писать в коммент состояние WorkTime и оттуда смотреть
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

b1gst0ne
Сообщения: 9
Зарегистрирован: 30 янв 2018, 02:13

Re: родительский контроль

Сообщение b1gst0ne » 30 авг 2019, 12:51

Chupaka писал(а):
30 авг 2019, 10:55
Добрый.
Версия RouterOS какая?
Как настроен доступ — виртуальный интерфейс имеет свою подсеть или находится в бридже?
Версия последняя стабильная, детский wifi имеет свою подсеть и отдельный бридж.

Аватара пользователя
Chupaka
Сообщения: 2065
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: родительский контроль

Сообщение Chupaka » 30 авг 2019, 13:25

b1gst0ne писал(а):
30 авг 2019, 12:51
детский wifi имеет свою подсеть и отдельный бридж.
Так, может, бридж выключать, а не Virtual AP? :)

Ответить