Комментарии 31
Я писал на Си, на Ява и там много различных структур данных: деревья, списки, мапы. Тут в явном виде ничего этого нет
Еще такой минимализм в Lua. Там только числа, строки и таблицы (это мапы по сути), даже массивы через таблицы делаются
Полностью согласен, это LUA. Только имеет свою родную среду исполнения и немного доработан.
:parse
для функций?.. 9 лет назад добавили как будто более адекватный синтаксис, почему бы про него не рассказать?
:global getSum do={\
if ($debug = 1) do={:put "Summing $1 and $2"};\
:return ($1 + $2)\
}
{
:local first 123
:local second 456
:local result1
:local result2
:set result1 [$getSum $first $second debug=1]
:set result2 [$getSum $second 789]
:put ("results are ".$result1." and ".$result2)
}
Я вроде не писал, что использую :parse для функций. Почти все они развернуты, так как Вы и описали.
Из скрипта можем вызвать функцию, развернутую в глобальной переменной, выполнить код из :parse, или вызвать другой скрипт.
Вот внутри функций есть места где вызывается код методом :parse или :execute, а можно и вместе...
:set result "[[:parse [system script get $calledFunctionName source]] queryID=$queryID queryChatID=$queryChatID...]"
:execute script=$result
Какая то реклама микротик, то что описано, понадобится 0,01 процентов тех кто купил микротик, а тем кто не купил, но им это нужно, реализуют это куда более лучшими средствами. Про телеграмм, просто промолчит, особенно про api, на 1 курсе, можно построить лучше, на собственный платформе, просто потому что телеграмм это мессенджер в первую очередь и таким он создавался, а то что там появилось потом api, не значит что оно хорошее/лучшее/удобное ( не нужное вычеркнуть), поэтому совет новичкам, попробуйте не микротик и не телеграмм, перспектив больше.
Если мой код поможет 0,01% тех, кто купил устройство, считай уже не зря старался. Микротик вообще не для слабонервных, его домой просто так никто не купит. Тут больше корпоративный сегмент. А Телеграм давно перестал быть просто мессенджером, это социальная сеть. И скорее всего так и задумывался, если учесть кто его создатель.
Простите, но вы взяли мясорубку и стали забивать ей гвозди. Зачем брать микротик, если можно взять подходящий инструмент для этого?
Главное непонятно, что сделать то хотите, для чего это? Мониторить железку- ставите полноценную NMS и мониторите, с уведомлениями и т.п. Управлять- вам там целый набор: SSH, WinBox. Web. Автоматизация- ансибл и вперед.
Почему у меня горит? Щас кто-то по вашей статье накостылит у себя в сети, а потом кому-то это разгребать. Или после вас.
Никогда не понимал, почему нельзя сразу сделать правильно?
Мониторить железку- ставите полноценную NMS и мониторите, с уведомлениями и т.п
Ставить полноценную железку, чтоб она отвечала на запрос кто дома?
Всё решается одним микротом
бот запускает скрипт на микроте, микрот смотрит аренду IP смартфонами. Если аренда жива-человек дома.
Зачем брать микротик, если можно взять подходящий инструмент для этого?
Если вам нужно закрутить одну гайку, вы берёте гаечный ключ(или даже плоскогубцы) или профессиональный пневмоинструмент с компрессорной станцией?
Ставить полноценную железку, чтоб она отвечала на запрос кто дома? Всё решается одним микротом
А где в статье про это написано? Либо надо писать, что не для использования в продакшене. Чтобы эникейщик, который чудом освоил гугл не нес это в сеть.
Продакшен продакшену рознь. Если это смол офис, то я считаю приемлимо. Тем более админ не всезнающий. Пусть лучше делает из того что умеет, чем из того на что денег не выделят и в чём он не разбирается.
Собственно, а можно обоснование почему нельзя в прод?
Потому что это костыльная самоделка, где для реализации стандартных хотелок выбран самый неподходящий инструмент. Микротик - это софтороутер, он должен перекладывать пакетики с интерфейса на интерфейс. Не надо ему мешать, он и так не всегда справляется, а вы на него хотите какие-то скрипты повесить.
В лучшем случае в какой-то момент функционала станет не хватать и придется переписывать, в худшем придет другой человек эта вся история в какой-то момент пойдет под откос и ему придется разбираться во всей этой писанине, а скорее всего просто переделывать.
Приходишь в такие организации, а там дышать на это поделие боятся: "Вдруг мы обновимся, а там скрипт сломается!".
И с готовыми решениями нет уверенности что при обновлении не сломается. Да конечно с распространённым софтом в плане поддержки проще, но опять же иногда оно не подходит по тем или иным обстоятельствами. Бывает не устраивает гибкость и зависимость от кого-то.
Вы может не представляете, но крупные бизнесы редко в итоге пользуются онли общедоступным ПО.
И с готовыми решениями нет уверенности что при обновлении не сломается.
Конечно нет. Но обычно перед обновлением известно что может сломаться и если что-то сломалось у вас обычно есть ТП, коммьюнити, форумы, чаты и т.п. где вам могут помочь.
Да конечно с распространённым софтом в плане поддержки проще, но опять же иногда оно не подходит по тем или иным обстоятельствами. Бывает не устраивает гибкость и зависимость от кого-то.
Вы может не представляете, но крупные бизнесы редко в итоге пользуются онли общедоступным ПО.
Ну начнем с того, что в крупном бизнесе вряд ли будут использовать микротики. Я представляю что в крупном бизнесе. Обычно там если что-то нужно особенное, создается отдел разработки, где там делается все по уму, документируется, поддерживается и т.д. Именно поэтому они стараются по максимуму использовать то что уже есть, ибо разработка своего (не на коленке, а как надо) стоит дороже.
С таким подходом любой софт можно назвать костыльной самоделкой =) Вы код откройте для начала. Я что зря писал про архитектуру и модульность? Там первокурсник разберется.
Микротик - это в первую очередь RouterOS. А раз это ОС, то под неё можно писать код. Замечу - код открыт. Что-то не устраивает - перепиши. Если оно вообще не надо - удали и работай через Winbox.
Многие недооценивают возможности Микротик, потому что не умеют его готовить. А в продакшене редко стоят какие-нибудь HAP. У нас к примеру CCR1036, у которого на борту 36 процессорных ядер и 4 гига памяти. На нем куча vLan, DHCP серверов, динамические очереди и много другого. Он бота вообще не замечает, как нагрузку. Причем бот стабильно работает даже слабеньких точках доступа.
Микротик - это тема на самом деле холиварная, можно долго дискутировать, но каждый останется при своём. Я уже доказал кому надо, всё что хотел и не буду делать это ещё раз.
Вам большое спасибо за Ваше мнение. Я, безусловно, его уважаю и полностью поддерживаю в части опасности использования костылей, но тут совсем другой случай. Сам в продакшене использую большие серьезные системы, в том числе SCCM и всю линейку SC, для мониторинга Zabbix + Grafana. И еще много других систем. Есть так-же Cisco в стеках и куча Juniper-ов. Но микротик мне нравится больше...
На данный момент бот успешно используется в продакшене, на довольно крупном предприятии. В том числе защищает от эникеев, освоивших гугл. Им на Микротик вход вообще запрещен, однако через бота они могут выполнять действия, которые им разрешил администратор. Права настраиваются на любой модуль. Служба безопасности тоже в этом участвует. Например отслеживает в реальном времени появление новых устройств в сети, подключение удаленных пользователей и пинает админов, если увидят что-то подозрительное. Скорость реакции на инциденты увеличилась в разы.
И работает это всё прямо в среде маршрутизатора. Не надо разворачивать и настраивать сторонние системы.
Статья не рассчитана на обычных пользователей, хотя и они тоже могут почерпнуть для себя что-то полезное. А если кто-то тестирует что-то сразу в продакшене, то довольно скоро жизнь его научит, что так делать нельзя.
Какая прелесть. Вот про это я и писал. Мои искреннее сочувствие тому, кто будет после вас это разгребать.
На данный момент бот успешно используется в продакшене, на довольно крупном предприятии.
А остальные устройства вы как мониторите, которые не на РоутерОС сделаны? Там свои костыли?
В том числе защищает от эникеев, освоивших гугл. Им на Микротик вход вообще запрещен, однако через бота они могут выполнять действия, которые им разрешил администратор. Права настраиваются на любой модуль.
AAA
Например отслеживает в реальном времени появление новых устройств в сети, подключение удаленных пользователей и пинает админов, если увидят что-то подозрительное.
Dot1x
И работает это всё прямо в среде маршрутизатора.
Который в тоже время должен трафик маршрутизировать
Меня вдруг осенило, а вы случайно не Сааб?
Меня вдруг осенило, а вы случайно не Сааб?
Этот момент поясните пожалуйста, я его не понял...
Ни в коем случае не подумайте, что это оскорбление. Это просто ник-мем на одном форуме по сетям- Saab95. У него подход решения задач похож чем-то на ваш. Я вот и подумал...
С удовольствием прочитал статью. Код велликолепен, всё систематизировано. Мне даже важен не столько сам продукт, обсуждаемый в статье, сколько появившийся в нашем сообществе (я имею ввиду любителей Микротик) профи, который может мыслить шире и глубже чем мы. Да, многие из нас могут написать небольшой скрипт или адаптировать под себя готовые скрипты других авторов, но разработать что-то большое и серьезное может только профессиональный программист, знающий теорию и имеющий практику. Уважаемый Brook, мы рады, что Вы с нами ! Будем с удовольствием учиться у Вас и сотрудничать с Вами.
Mikrotik, Telegram и не только…