Я постараюсь собрать все полезные ссылки на темы, которые стоит посмотреть, когда нужен какой-то скрипт, которого ещё нет в вики или который там есть, чтобы они не затерялись среди кучи других постов. Обращайте внимание на дату публикации, чтобы понять, к какой версии RouterOS относятся эти материалы.
Функции статистики IP Pool в CMD-скриптах Воссоздание правил балансировки нагрузки с помощью mangle Экспорт настроек беспроводной сети с пропуском некоторых параметров
В таком случае воспользуйся редактором скриптов CLI (внутри RouterOS) и редактируй скрипт там. Большинство изменений в синтаксисе можно будет заметить именно там. Нажми F5, чтобы обновить подсветку.
Спасибо, Janisk. Также полезно указать версию RouterOS, с которой работает скрипт, потому что иногда я натыкаюсь на старые скрипты для версии 2.9, и они не работают с версией 4.14.
Привет, ребята! Почему этот скрипт не работает?! set[/ip route find dst 0.0.0.0] gateway 10.0.0.1 — эта команда упоминается в wiki.mikrotik: http://wiki.mikrotik.com/wiki/Manual:Tools/Netwatch. После ввода команды ничего не происходит, и маршрут по умолчанию не меняется. Я хочу написать скрипт, который изменит шлюз маршрута по умолчанию.
Не знаю, куда бы это запостить, но, пожалуй, это лучшее место для этого. По сути, что делает скрипт: он проверяет динамические аренды на моём DHCP-сервере, берёт их MAC-адреса и сверяет их с фильтром фаервола. Если MAC нет в фильтре — добавляет его и блокирует весь трафик с этих адресов. Я использую это, чтобы не давать пользователям халявно пользоваться моим интернетом, особенно когда им от знакомых достаётся мой Wi-Fi ключ.
Привет! Я создал простой скрипт для ежедневного резервного копирования настроек роутера и базы данных usermanager, используя SD-карту как буфер, чтобы уменьшить износ флеш-памяти роутера. Это особенно полезно, если планируешь увеличить базу usermanager до размеров в гигабайты — тогда бэкап на встроенной памяти уже не получится. Также планирую написать отдельный скрипт, который каждую неделю будет “перестраивать” базу и логи, чтобы уменьшить размер резервных копий.
Этот скрипт всегда удаляет одни и те же два файла, чтобы в FTP всегда оставалась последняя актуальная версия.
#автоматизация System: log info message=System_Export_started; local exportname ([/system identity get name].“.rsc”); local UMname ([/system identity get name].“.umb”); export compact file=micro-sd/exportSy.rsc; /tool user-manager database save name=micro-sd/backupUM.umb; log info message=System_Export_finished;
Вот скрипт, который я только что написал для централизованного массового обновления новых (бета) прошивок в нашей беспроводной системе под управлением CAPsMAN:
Только что добавил скрипт для ограничения данных в Hotspot http://forum.mikrotik.com/t/hotspot-data-limits/90475/1. Устанавливает лимит данных при входе — не требует постоянного мониторинга скриптом — и отключает пользователя, когда данные исчерпаны.
Ищу способ отредактировать мой скрипт отчёта по напряжению. Сейчас он настроен на отправку письма с отчётом ежедневно в 23:00, хочу изменить на 8:00, но при этом получаю отрицательные значения часов, например -1, -2, -3 и так далее. Я сделал две правки и посмотрю, что будет завтра, но если кто-то знает простой способ исправить — дайте знать. Ниже скрипт, который я использовал с сайта (два скрипта). Я не очень разбираюсь в скриптах, но стараюсь разобраться, просто хочу получать отчёты в 8 утра вместо 11 вечера. В строке ниже изменил 23 - $x на 08 + $x в надежде получить положительные числа:
global highvolt global lowvolt global hivolttime global lovolttime global starttime global vh local tvolt local thisbox [/system identity get name] local thisdate [/system clock get date] local thishour local emessage “Ежедневный отчёт по напряжению для $thisbox за $thisdate\n\n” if ([:len $vh] > 0) do={ for x from=0 to=([:len $vh]-1) step=1 do={ set tvolt [:tostr [:pick $vh $x]] set thishour [:tostr (08 + $x)] while ([:len $thishour] < 2) do={set thishour (“0” . $thishour)} set emessage ($emessage . $thishour . ":00 = " . [:pick $tvolt 0 2] . “.” . [:pick $tvolt 2 3] . “\n”) } set emessage ($emessage . "\nС момента запуска VoltMonitor " . $starttime . “\n”) set tvolt [:tostr $highvolt] set emessage ($emessage . "Максимум = " . [:pick $tvolt 0 2] . “.” . [:pick $tvolt 2 3] . " В в " . $hivolttime . “\n”) set tvolt [:tostr $lowvolt] set emessage ($emessage . "Минимум = " . [:pick $tvolt 0 2] . “.” . [:pick $tvolt 2 3] . " В в " . $lovolttime . “\n”) set email address in next line /tool e-mail send to=“myemail” subject=“$thisbox Voltage Report” body=$emessage } remark out the next line for testing to avoid resetting the voltage array :set vh
########################################################################## Volt monitor script — я изменил строку ниже, чтобы запускать отчёт не в 23 часа, а в 8 утра #set lowvoltalarm значение тревоги по напряжению в десятых частей вольта. 118 = 11.8v # +015 это компенсация для реального напряжения. global lowvoltalarm 225 global highvolt global lowvolt global starttime global hivolttime global lovolttime global vh local thisbox [/system identity get name] global voltage ([/system health get voltage] + 015) local thistime [/system clock get time] local thisdate [/system clock get date] local thishour [:pick $thistime 0 2] local emessage ($thisbox . " напряжение " . [:pick $voltage 0 2] . “.” . [:pick $voltage 2 3]) if ([:len $lowvolt] < 1) do={set lowvolt 999; set highvolt 0} if ($voltage <= $lowvoltalarm) do={/tool e-mail send to=“mycelltext” subject=“$thisbox низкое напряжение” body=$emessage} if ($voltage <= $lowvoltalarm) do={/tool e-mail send to=“hiscelltext” subject=“$thisbox низкое напряжение” body=$emessage} if ($voltage > $highvolt) do={set highvolt $voltage; set hivolttime ($thistime . " " . $thisdate)} if ($voltage < $lowvolt) do={set lowvolt $voltage; set lovolttime ($thistime . " " . $thisdate)} if ([:len $vh] > 0) do={set vh ([:toarray $voltage] + $vh)} else={set vh [:toarray $voltage]} if ([:len $starttime] < 1) do={set starttime ($thistime . " " . $thisdate)} if ($thishour = “08”) do={execute voltreport}
Привет, jfrawley, Тебе удалось запустить свой скрипт мониторинга напряжения на версии 6.33.5? У меня тоже есть похожий скрипт мониторинга напряжения, он отлично работает на 6.29, но никак не запускается на версиях выше 6.30... Вот мой скрипт:
#set lowvoltalarm на желаемое напряжение тревоги в десятых долях вольта. 125 = 12.5v :global lowvoltalarm 200 :global highvoltalarm 280 :global highvolt :global lowvolt :global starttime :global hivolttime :global lovolttime :global vh :local thisbox [/system identity get name] :global voltage [/system health get voltage] :local thistime [/system clock get time] :local thisdate [/system clock get date] :local thishour [:pick $thistime 0 2] :local emessage ($thisbox . " voltage is: " . [:pick $voltage 0 2] . "." . [:pick $voltage 2 3]) :if ([:len $lowvolt] < 1) do={:set lowvolt 999; :set highvolt 0}