From 9da03d83c74b602298705f25751601063e31ad80 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 13 May 2026 05:40:05 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 13 05:40:05. --- MikroGig/tmp/Config.rsc | 0 .../20260513/20260513054001-Binary.backup | Bin 0 -> 381664 bytes MikroNUC/20260513/20260513054001-Config.rsc | 4778 +++++++++++++++++ .../20260513/20260513054001-Diff-Config.rsc | 3 + 4 files changed, 4781 insertions(+) delete mode 100644 MikroGig/tmp/Config.rsc create mode 100644 MikroNUC/20260513/20260513054001-Binary.backup create mode 100644 MikroNUC/20260513/20260513054001-Config.rsc create mode 100644 MikroNUC/history/20260513/20260513054001-Diff-Config.rsc diff --git a/MikroGig/tmp/Config.rsc b/MikroGig/tmp/Config.rsc deleted file mode 100644 index e69de29..0000000 diff --git a/MikroNUC/20260513/20260513054001-Binary.backup b/MikroNUC/20260513/20260513054001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3c930a1250b9960bacd1fce831203dc861f90c95 GIT binary patch literal 381664 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௣L_J~j%@naX} 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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 upgrade-policy=require-same-version +/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-07 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/20260513/20260513054001-Diff-Config.rsc b/MikroNUC/history/20260513/20260513054001-Diff-Config.rsc new file mode 100644 index 0000000..cb3ce98 --- /dev/null +++ b/MikroNUC/history/20260513/20260513054001-Diff-Config.rsc @@ -0,0 +1,3 @@ +4727,4728d4726 +< /system gps +< set set-system-time=yes -- 2.52.0