From f2e8c7ed033d522d0edd9e4c0f61a657de82f99a Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 20:40:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 20:40:02. --- .../20260430/20260430204001-Binary.backup | Bin 0 -> 361851 bytes MikroNUC/20260430/20260430204001-Config.rsc | 4169 +++++++++++++++++ .../20260430/20260430204001-Diff-Config.rsc | 12 + 3 files changed, 4181 insertions(+) create mode 100644 MikroNUC/20260430/20260430204001-Binary.backup create mode 100644 MikroNUC/20260430/20260430204001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430204001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430204001-Binary.backup b/MikroNUC/20260430/20260430204001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8b2b785b2414b950031c446e56dc310f8e34dcd0 GIT binary patch literal 361851 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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\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char \"\";\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:set \$PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \"\\n\" \"\ + \" ];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress\";\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/20260430204001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430204001-Diff-Config.rsc new file mode 100644 index 0000000..ff40a69 --- /dev/null +++ b/MikroNUC/history/20260430/20260430204001-Diff-Config.rsc @@ -0,0 +1,12 @@ +3981d3980 +< \n:global CharacterReplace;\r\ +3985,3991c3984 +< \n :local Char \"\";\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:set \$PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \"\\n\" \"\ +< \" ];\r\ +--- +> \n :local PublicIpAddress [:tonum [\$GetPubIp]];\r\ -- 2.52.0