From e205c92906857c54171cfa761875763457638355 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 7 Jun 2026 03:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 07 03:20:03. --- .../20260607/20260607032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260607/20260607032001-Config.rsc | 4790 +++++++++++++++++ .../20260607/20260607032001-Diff-Config.rsc | 8 + 3 files changed, 4798 insertions(+) create mode 100644 MikroNUC/20260607/20260607032001-Binary.backup create mode 100644 MikroNUC/20260607/20260607032001-Config.rsc create mode 100644 MikroNUC/history/20260607/20260607032001-Diff-Config.rsc diff --git a/MikroNUC/20260607/20260607032001-Binary.backup b/MikroNUC/20260607/20260607032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..44f59e573494046287e4705b2626773ced906f90 GIT binary patch literal 380167 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�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\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"container\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" ||\ + \_\\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :local Script \"mod/AM-Certs-By-Ident\";\r\ + \n \r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetch \ + check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".\ + rsc\") output=user as-value ]->\"data\");\r\ + \n /system/script run \$Script;\r\ + \n :global tmpAddCerts;\r\ + \n :while ([ \$tmpAddCerts ] = true) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n :delay 1s;\r\ + \n :put \"Removing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#\r\ + \n#root.mnuc.backuper\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub\r\ + \n#:local FetchFile AM-DOHCert.rsc\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\r\ + \n:global MkDir;\r\ + \n\r\ + \n:local FetchFile Binary.backup\r\ + \n:local localDir \"[usb1]/scripts/\";\r\ + \n\r\ + \n\$MkDir \$localDir;\r\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +add comment="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes require-peer-certificate=yes +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-store=system +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-06-04 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260607/20260607032001-Diff-Config.rsc b/MikroNUC/history/20260607/20260607032001-Diff-Config.rsc new file mode 100644 index 0000000..44a4a0b --- /dev/null +++ b/MikroNUC/history/20260607/20260607032001-Diff-Config.rsc @@ -0,0 +1,8 @@ +843c843 +< \n:global CommitId \"main/672/7cf8bc7a\";\r\ +--- +> \n:global CommitId \"main/670/7de640a1\";\r\ +846c846 +< r: root, in 14:35:04 06.06.2026.\";\r\ +--- +> r: root, in 13:30:03 01.06.2026.\";\r\ -- 2.52.0