From c478ddb3328b49221042b095817efad921234c3f Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 14 May 2026 04:00:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 14 04:00:03. --- .../20260514/20260514040001-Binary.backup | Bin 0 -> 379738 bytes MikroNUC/20260514/20260514040001-Config.rsc | 4778 +++++++++++++++++ .../20260514/20260514040001-Diff-Config.rsc | 4 + 3 files changed, 4782 insertions(+) create mode 100644 MikroNUC/20260514/20260514040001-Binary.backup create mode 100644 MikroNUC/20260514/20260514040001-Config.rsc create mode 100644 MikroNUC/history/20260514/20260514040001-Diff-Config.rsc diff --git a/MikroNUC/20260514/20260514040001-Binary.backup b/MikroNUC/20260514/20260514040001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..5e360927b68d159e0509eca5488720a08b792cc2 GIT binary patch literal 379738 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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\"; \"mod/AM-\ + Certs-By-Ident\" } 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 :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/635/33f8040a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 11.05.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 WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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-05-14 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/20260514/20260514040001-Diff-Config.rsc b/MikroNUC/history/20260514/20260514040001-Diff-Config.rsc new file mode 100644 index 0000000..6afd4f1 --- /dev/null +++ b/MikroNUC/history/20260514/20260514040001-Diff-Config.rsc @@ -0,0 +1,4 @@ +4766c4766 +< start-date=2026-05-14 start-time=03:41:27 +--- +> start-date=2026-05-07 start-time=03:41:27 -- 2.52.0