Подборка полезных скриптов для Mikrotik
Подборка полезных скриптов для Mikrotik Сгенерировать резервную копию и отправить её по электронной почте Этот скрипт создаёт файл резервной копии и отправляет его на указанный адрес электронной почты. В теме письма содержится имя маршрутизатора, текущая дата и время. Обратите внимание, что сервер SMTP должен быть настроен перед использованием этого скрипта. Смотрите настройки в разделе /tool e-mail. /system backup save name=email_backup /tool e-mail send file=email_backup.backup to="me@test.com" body="See attached file" \ subject="$[/system identity get name] $[/system clock get time] $[/system clock get date] Backup") Файл резервной копии содержит конфиденциальную информацию, такую как пароли. Поэтому, чтобы получить доступ к созданным файлам резервной копии, у скрипта или планировщика должна быть политика "sensitive" (чувствительная). Использование строки в качестве функции :global printA [:parse ":local A; :put \$A;" ]; $printA Проверка пропускной способности и добавление ограничений Этот скрипт проверяет, не превышает ли загрузка на интерфейсе 512 кбит/с, если это так, то добавляется очередь для ограничения скорости до 256 кбит/с. :foreach i in=[/interface find] do={ /interface monitor-traffic $i once do={ :if ($"received-bits-per-second" > 0 ) do={ :local tmpIP [/ip address get [/ip address find interface=$i] address] ; # :log warning $tmpIP ; :for j from=( [:len $tmpIP] - 1) to=0 do={ :if ( [:pick $tmpIP $j] = "/") do={ /queue simple add name=$i max-limit=256000/256000 dst-address=[:pick $tmpIP 0 $j] ; } } } } } Заблокировать доступ к определённым веб-сайтам Этот скрипт полезен, если вы хотите заблокировать некоторые сайты, но не хотите использовать веб-прокси. В этом примере проверяются записи "Rapidshare" и "youtube" в DNS-кэше, и IP-адреса добавляются в список адресов с именем "restricted". Прежде чем начать, необходимо настроить маршрутизатор для перехвата всех DNS-запросов. /ip firewall nat add action=redirect chain=dstnat comment=DNS dst-port=53 protocol=tcp to-ports=53 add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53 и добавьте брандмауэр /ip firewall filter add chain=forward dst-address-list=restricted action=drop Теперь мы можем написать сценарий и запланировать его выполнение, скажем, каждые 30 секунд. Код сценария: :foreach i in=[/ip dns cache find] do={ :local bNew "true"; :local cacheName [/ip dns cache all get $i name] ; # :put $cacheName; :if (([:find $cacheName "rapidshare"] >= 0) || ([:find $cacheName "youtube"] >= 0)) do={ :local tmpAddress [/ip dns cache get $i address] ; # :put $tmpAddress; # if address list is empty do not check :if ( [/ip firewall address-list find list="restricted" ] = "") do={ :log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress"); /ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName; } else={ :foreach j in=[/ip firewall address-list find list="restricted"] do={ :if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={ :set bNew "false"; } } :if ( $bNew = "true" ) do={ :log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress"); /ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName; } } } } 👉 @i_odmin