Всем привет.
Есть у меня некоторое количество устройств MikroTik (пополняемое), на которые прикрутил ботов от телеграм.
Скрипты есть мои и чужие (авторство не указано, но некоторые из них "допиливал" под себя).
Боты у меня сидят в групповых чатах, работу в приватных не проверял (вроде должно работать).
И так начнем... при старте системы отрабатывает scheduler, запускаем один раз при старте, разрешения (read, write, policy, test)
Скрипты...
глобальные переменные, разрешения (read, write, policy, test)
сообщение о старте системы, разрешения (все выключаем, включаем "dont require permissions")
скрипт для отправки сообщений, разрешения (все выключаем, включаем "dont require permissions")
Скрипты через Telegram
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Следующий этап.
Создаем в scheduler, разрешения (read, write, policy, test), задаем нужный интервал, у меня стоит раз в 1 минуту
Собственно сам скрипт (не мой, немного модифицировал), разрешения (read, write, policy, test).
Распознает чаты, свой-чужой.
В ROS6 отваливался с ошибкой через 5 минут работы после старта системы, дальше работал без ошибок.
В ROS7 пока не наблюдал подобного, но "WatchDog" оставил.
Создаем в scheduler, разрешения (read, write, policy, test), задаем нужный интервал, у меня стоит раз в 1 минуту
Собственно сам скрипт (не мой, немного модифицировал), разрешения (read, write, policy, test).
Распознает чаты, свой-чужой.
В ROS6 отваливался с ошибкой через 5 минут работы после старта системы, дальше работал без ошибок.
В ROS7 пока не наблюдал подобного, но "WatchDog" оставил.
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Продолжаем..
Если чат наш, отрабатывает следующий скрипт, разрешения (все выключаем, включаем "dont require permissions")
Основной скрипт-команда, указанный отцу ботов, разрешения (все выключаем, включаем "dont require permissions").
Естественно отцу пишем без "/", этот скрипт обычно называю по имени устройства/бота, здесь будет просто "/check".
Этот использую на домашнем роутере, выдает нужные мне параметры и команды.
Список IP адресов выдаваемых провайдерами, в скрипте 2шт, разрешения (все выключаем, включаем "dont require permissions")
Для основного скрипта команды "/check".
Пара команд-скриптов, разрешения (все выключаем, включаем "dont require permissions").
Включают и отключаю L2TP-server и соответствующие правила Firewall.
Если чат наш, отрабатывает следующий скрипт, разрешения (все выключаем, включаем "dont require permissions")
Основной скрипт-команда, указанный отцу ботов, разрешения (все выключаем, включаем "dont require permissions").
Естественно отцу пишем без "/", этот скрипт обычно называю по имени устройства/бота, здесь будет просто "/check".
Этот использую на домашнем роутере, выдает нужные мне параметры и команды.
Список IP адресов выдаваемых провайдерами, в скрипте 2шт, разрешения (все выключаем, включаем "dont require permissions")
Для основного скрипта команды "/check".
Пара команд-скриптов, разрешения (все выключаем, включаем "dont require permissions").
Включают и отключаю L2TP-server и соответствующие правила Firewall.
Последний раз редактировалось -13- 26 мар 2022, 18:33, всего редактировалось 2 раза.
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Основной скрипт-команда, но используется на микротиках за NAT, для удаленного подключения последних к серверу L2TP.
Опять же, называю именем устройства.
К нему идут еще 3 скрипта
Список L2TP-клиентов, который по совместительству еще и включает нужный клиент с помощью следующего скрипта
Включаем клиента
Выключаем всех клиентов
Опять же, называю именем устройства.
К нему идут еще 3 скрипта
Список L2TP-клиентов, который по совместительству еще и включает нужный клиент с помощью следующего скрипта
Включаем клиента
Выключаем всех клиентов
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Вопросы и критику приветствую.
Возможно будет продолжение...
Возможно будет продолжение...
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
Написано красиво, профессионально, но гемморойно в установке. Нельзя ли сделать один файл-установщик в шапке которого можно было бы настроить необходимые параметры, а дальше он сам всё бы разрулил ? Думаю вполне реально. И в файле основном-командере зачем проверять на каждую команду с помощью :if do else ? Можно занести все команды в массив и в нём искать, если найдено - исполнить, если нет - выдать ошибку ... + нет возможностей запуска команд-функций. Это не сложно сделать ...
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Я не волшебник, я пока еще только учусьSertik писал(а): ↑29 мар 2022, 15:01 Написано красиво, профессионально, но гемморойно в установке. Нельзя ли сделать один файл-установщик в шапке которого можно было бы настроить необходимые параметры, а дальше он сам всё бы разрулил ? Думаю вполне реально. И в файле основном-командере зачем проверять на каждую команду с помощью :if do else ? Можно занести все команды в массив и в нём искать, если найдено - исполнить, если нет - выдать ошибку ... + нет возможностей запуска команд-функций. Это не сложно сделать ...

По порядку:
1 - Файл-установщик нужен, может как-нибудь осилю, пока что у меня конфиги типовые, и там я меняю только "botID" и идентификатор устройства, заливаю весь конфиг разом через терминал. Но универсальный установщик скриптов нужен...
Опять же, если в терминале не указывать разрешения для скрипта, он ставит галки на все, как это обойти пока не нашел...
2 - Основной командер - это какой? "fnChat - script" про него речь? Думаю про это, как красивее использовать...
3 - Запуск команд-функций для чего? На то они и функции... Ну или поясните на примере что хотелось бы запускать?
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
1. Вы согласны - это хорошо, будем ждать версию с установщиком.
2. Да это про него, можно сделать нагляднее, удобнее для внесения новых команд, когда они появятся, потом кину Вам пример в личку.
3. Насчёт функций: функции могут иметь параметры и возвращать результат. Собственно скриптам параметры тоже можно передать, есть хитрость одна. Функции должны находиться "в режиме готовности" - висеть в окружении, как глобал-переменные. Кто-то боится, что это занимает память. Да, занимает, но проблем в работе от этого у меня никогда не было, хотя в памяти различных по архитектуре роутеров "висит" обычно 50, а где то и 150 ... функций в окружении.
Если Ваш скрипт запускает команды, то использовать их с параметрами даёт больше возможностей при минимуме имён команд.
Например, у Вас есть команда ну скажем UserPass, которая без параметров выдает в Телеграмм список всех пользователей роутера и их паролей. А использованная с параметрами, например, как UserPass newUser newPass, добавляет пользователя роутера с указанным паролем, а скажем UserPass nameUser del - удаляет указанного пользователя из /system user. (Всё это приведено для примера). Получается команда одна, а функций у неё несколько.
Возврат результатов из функции в Телеграмм тоже возможен, если дополнительно прикручен "уведомитель".
Наша версия всего этого представлена здесь: viewtopic.php?f=14&t=12659
И описана здесь https://habr.com/ru/post/650563/
Но Ваш вариант очень симпатичен и безусловно "имеет право на жизнь". Думаю, если его немного "подразвить" - будет альтернативным нашему.
P/S Надеюсь в пределах недели выйдет новая версия нашего TLGRM и библиотеки команд SATELLITE (Спутник) к нему.
2. Да это про него, можно сделать нагляднее, удобнее для внесения новых команд, когда они появятся, потом кину Вам пример в личку.
3. Насчёт функций: функции могут иметь параметры и возвращать результат. Собственно скриптам параметры тоже можно передать, есть хитрость одна. Функции должны находиться "в режиме готовности" - висеть в окружении, как глобал-переменные. Кто-то боится, что это занимает память. Да, занимает, но проблем в работе от этого у меня никогда не было, хотя в памяти различных по архитектуре роутеров "висит" обычно 50, а где то и 150 ... функций в окружении.
Если Ваш скрипт запускает команды, то использовать их с параметрами даёт больше возможностей при минимуме имён команд.
Например, у Вас есть команда ну скажем UserPass, которая без параметров выдает в Телеграмм список всех пользователей роутера и их паролей. А использованная с параметрами, например, как UserPass newUser newPass, добавляет пользователя роутера с указанным паролем, а скажем UserPass nameUser del - удаляет указанного пользователя из /system user. (Всё это приведено для примера). Получается команда одна, а функций у неё несколько.
Возврат результатов из функции в Телеграмм тоже возможен, если дополнительно прикручен "уведомитель".
Наша версия всего этого представлена здесь: viewtopic.php?f=14&t=12659
И описана здесь https://habr.com/ru/post/650563/
Но Ваш вариант очень симпатичен и безусловно "имеет право на жизнь". Думаю, если его немного "подразвить" - будет альтернативным нашему.
P/S Надеюсь в пределах недели выйдет новая версия нашего TLGRM и библиотеки команд SATELLITE (Спутник) к нему.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Продолжаем...
Домой заходят два провайдера (резервирование при помощи рекурсивной маршрутизации), и все чаще по очереди безобразничают...
Чтобы оперативно видеть, что кто-то отвалился и пинать провайдера, написал пару скриптов.
Создаем задачу в scheduler, запускаю раз в 1 минуту, разрешения (read, write, policy, test)
Скрипт-функция, получаем IP или статус порта, разрешения (все выключаем, включаем "dont require permissions")
Скрипт проверяющий порты (добавляем свои названия интерфейсов), разрешения (все выключаем, включаем "dont require permissions")
Домой заходят два провайдера (резервирование при помощи рекурсивной маршрутизации), и все чаще по очереди безобразничают...
Чтобы оперативно видеть, что кто-то отвалился и пинать провайдера, написал пару скриптов.
Создаем задачу в scheduler, запускаю раз в 1 минуту, разрешения (read, write, policy, test)
Скрипт-функция, получаем IP или статус порта, разрешения (все выключаем, включаем "dont require permissions")
Скрипт проверяющий порты (добавляем свои названия интерфейсов), разрешения (все выключаем, включаем "dont require permissions")