From 609c7982d02b23d42dbd344945cfb57210cc4f16 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 21:20:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 21:20:02. --- .../20260430/20260430212001-Binary.backup | Bin 0 -> 362145 bytes MikroNUC/20260430/20260430212001-Config.rsc | 4178 +++++++++++++++++ .../20260430/20260430212001-Diff-Config.rsc | 18 + 3 files changed, 4196 insertions(+) create mode 100644 MikroNUC/20260430/20260430212001-Binary.backup create mode 100644 MikroNUC/20260430/20260430212001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430212001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430212001-Binary.backup b/MikroNUC/20260430/20260430212001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..a82faf618b941325f9fc65462d9f9f080d1782c7 GIT binary patch literal 362145 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

QW%^NBqd++5((L*N}Jpw@yN-*b2N;&{Y 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 rUZt=Pf57?Z@SR&832+^Xdt{ZF=K`b|W_h;Syl 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 z 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 z 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%0DwEo36y3PSd2eK)LuJ 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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 \"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 SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\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 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 :local CertSettings [ /certificate/settings/get ];\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 \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :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 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 \"\";\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/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\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/303/124c37a2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 19:50:03 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\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 GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\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 ExitError;\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 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 FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\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 LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$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 \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$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\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\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\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\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\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: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: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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\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 :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 15]}\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\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 \$LogPrint 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 \$LogPrint 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 \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint 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 \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\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 GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$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 \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' 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 :global LogPrint;\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 \$LogPrint 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 FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\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 (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\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 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 GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \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 MiniDateTimeStamp do={\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 :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\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={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {: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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\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 :global LogPrint;\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 \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint 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 \$LogPrint 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 \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint 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 \$LogPrint 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 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 [ :len\ + \_\$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 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 LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint 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 \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 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: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: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 LogPrint;\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 \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\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 \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', 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: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: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:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\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 \$LogPrint 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: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: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: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:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\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: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# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\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 #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\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 :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\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 \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\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 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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\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 \"Setup Global Environment for scripts\";\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#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\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# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\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} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\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\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +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\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\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\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 :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 \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user 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 :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 :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 :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={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add 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\ + \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# 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.02.12\"\r\ + \n\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) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ + matic-backup-and-update\";\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 # 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 testArr [ :toarr \$PublicIpAddress ];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress\"; # , te\ + stArr = \$testArr\";\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 +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/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-download=yes crl-use=yes +/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="Setup Global Environment for scripts" 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-04-30 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/20260430/20260430212001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430212001-Diff-Config.rsc new file mode 100644 index 0000000..b721503 --- /dev/null +++ b/MikroNUC/history/20260430/20260430212001-Diff-Config.rsc @@ -0,0 +1,18 @@ +3987c3987 +< \n :local Char (\"\\n\\r\");\r\ +--- +> \n# :local Char \"\";\r\ +3995,3996c3995,3996 +< \n :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ +< \" ];\r\ +--- +> \n# :set \$PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \"/n\" \ +> \"\" ];\r\ +3998,4001c3998,3999 +< \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ +< \n:local testArr [ :toarr \$PublicIpAddress ];\r\ +< \n :log warning \"Public IP address detected: \$PublicIpAddress\"; # , te\ +< stArr = \$testArr\";\r\ +--- +> \n :set \$PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ +> \n :log warning \"Public IP address detected: \$PublicIpAddress\";\r\ -- 2.52.0