From 1f9f0e453badb85a252406164bd3f67d5e3a2fa9 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 03:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 12 03:20:03. --- .../20260612/20260612032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260612/20260612032001-Config.rsc | 4790 +++++++++++++++++ .../20260612/20260612032001-Diff-Config.rsc | 8 + 3 files changed, 4798 insertions(+) create mode 100644 MikroNUC/20260612/20260612032001-Binary.backup create mode 100644 MikroNUC/20260612/20260612032001-Config.rsc create mode 100644 MikroNUC/history/20260612/20260612032001-Diff-Config.rsc diff --git a/MikroNUC/20260612/20260612032001-Binary.backup b/MikroNUC/20260612/20260612032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..f5d85c11d91f80c7981bd6bf8e9a0273b08d7d18 GIT binary patch literal 380167 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

yvGZDXLwAt6M|66;L>aja_U@vOq_4| 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%0Do%%xBQ^)Z=?Zhr$p&8rUFo=6+?nJ;R{JZycxI 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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/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.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-11 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/20260612/20260612032001-Diff-Config.rsc b/MikroNUC/history/20260612/20260612032001-Diff-Config.rsc new file mode 100644 index 0000000..cfa40d0 --- /dev/null +++ b/MikroNUC/history/20260612/20260612032001-Diff-Config.rsc @@ -0,0 +1,8 @@ +843c843 +< \n:global CommitId \"main/680/f2c803f5\";\r\ +--- +> \n:global CommitId \"main/679/bd93dce4\";\r\ +846c846 +< r: root, in 21:20:03 11.06.2026.\";\r\ +--- +> r: root, in 13:30:03 08.06.2026.\";\r\ -- 2.52.0