From 37d3bf1bd4fb02e3b85f4f684da06f67bb56e8e9 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 03:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 02 03:20:02. --- .../20260602/20260602032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260602/20260602032001-Config.rsc | 4790 +++++++++++++++++ .../20260602/20260602032001-Diff-Config.rsc | 8 + 3 files changed, 4798 insertions(+) create mode 100644 MikroNUC/20260602/20260602032001-Binary.backup create mode 100644 MikroNUC/20260602/20260602032001-Config.rsc create mode 100644 MikroNUC/history/20260602/20260602032001-Diff-Config.rsc diff --git a/MikroNUC/20260602/20260602032001-Binary.backup b/MikroNUC/20260602/20260602032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..13861ca8d4665ba2d047cabbf0b6ac2af9717e74 GIT binary patch literal 380167 zcmV(fK>EM$sF8CA%>@9HJDpujk$C__1EgsB#`RhN00000000080002M*arv});#Xj zlo>Rjt4pdK2i}c4#lC8?x3R#8l!V`(9k?~;BvT=Gw|K8_M+cX2P>_ok$Jg95AW_f; z4H$mx@}(I(AjX|z8%66y%lwU&NoV;J%K8_U2SO(=35xj<4afZxQ5w6^lTWIm#QL&F zd!Xfx#4ym~AvwYl@SL5UrW2aa0XE{klmDI8P8GipCz!`A|IE_C*_nB2kN}uq%o-seY{Nj0JZZnrR9Gd28MVJF!~QI0!qE=1fcXWfi4{M zaKAV>Ft}`;>N5TJNJPI=YK23G%m;`})lt9PCJXNX)jH5Bmh!z-S3=;f&=Su<6>o$k zTi?7yP=p0><*QCCR}a4JF8DSwu{f1s6IP{@(Oux+V?L8R+Z}+cZ zWe-+{s&D__SjIuVcqW5r763C0lU1^3JjlOoc%~c_p;k-;a%JHt1 zb;dUTOXf@#YBgg^@nkFy^v%2`!9Jh09H_l%@`qqQ&gku z+XS1-doHgcQCOA`S{Q^A<|<+sxFk;OP7nb-0%#m-FZ6}9G+<7h%BB=?1DkIPKYaar zQ7dmy^Q@38#vlujhuKr+5Mvu2eH__T2nuj0rPqnp)A~DkgHj`$npUQVG|~PuN5TTO z47|g-Vj$yQ48X#2nG#dKs7x~dcv;y{S_vGi=b;>HhcWlKoDlQ3|Igypi7an@h%yT( zzX{vXAPwa2=90HpN#il%cjj*&=Oj@Q2|8HtPO(L9Xp}XdM0)^Kh7aes=Q@Oq7hTu9 zqZz($rTy9&5|7}aa9b>vZ@@>g$VkIWUd z@Z%;WHWHJC=YRZcllcFPMsydlpZ+gQ`=}bSP9XO)o z-aW-#phkgKm&dI(8RT6WAE*qD970!zd2IF5-(nz@mbJz$ItKN2Yv~*d60bVa)a)>m z&mMk(Ew(8Gg?w#2ngC&Fkp`t-gs8JlZvXY1;ehoFn*$Ys$s|m+pht&JuPFPNT?<>| z1~OrFw?I~)NMX*678q~qpT=+co|_Kpr&?jNJFbT&BQ^*(HKb*x%sPkPZjUa1h$ z%pVpAMwp{0m!T}s{fr?2^M3cNCWK~A5frH0BMt@^tqsx%nB52a35B-H*WwSG+7`Fo z$fFhDR!5eVl+mT&;d{+#)jReSB={KTr0BO<8j`s{o0#Ma_L~n;4LZ6C#pdqs1fgo6 zxJ^Bd#x?jD^h+2Kq_}sXFOZw#cG1R`B&shYiM%VV&{*p8rv+J7(X0jsEkJjoD_XPK`ED*1|8! z@1Kn7#IC|wcB_ynp!Xxq;rj_Y^od3Us(TTt>L%d0yeQ$Z>N09MmpqvIn41@nNZ@CZ zz_-cqmo>#)I~z|v=-kIDwL~@v8u?|MY$iZXtPPye{1vCfg^s?Z;WX{~-|rYXvI`6^ zk4dD9GiQIkLfw578UQ|qn`xikW`>w%ViVdr#b>mPu%JOt&?QTUI0|Tm``pokAJ2^N z*f+g@J4t>cz-sOCK$cInX^JWLo`RD8r#92jDL>ns9t;hh8=GGYGeXG%+~fT)j0EZA z=$ZN)C`%~SdT5xi6F?)U5^}1}NcWaTseA%UCTgFtMi+x{M4`BlH-(OALT{R192U

hS`)b}puN6~PjS*szN^n+7Ggeqyp_MEDv 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 -2kOdhhiPE@UsIHKLtA{4;{8#rRQc`}#CB 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

a|Ij}gm%h$lXVQ=V6h8%r>3@ctl}2p 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

-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 Q27bsQKR{$O56BX&ThXih8vp\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"container\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" ||\ + \_\\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :local Script \"mod/AM-Certs-By-Ident\";\r\ + \n \r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetch \ + check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".\ + rsc\") output=user as-value ]->\"data\");\r\ + \n /system/script run \$Script;\r\ + \n :global tmpAddCerts;\r\ + \n :while ([ \$tmpAddCerts ] = true) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n :delay 1s;\r\ + \n :put \"Removing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#\r\ + \n#root.mnuc.backuper\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub\r\ + \n#:local FetchFile AM-DOHCert.rsc\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\r\ + \n:global MkDir;\r\ + \n\r\ + \n:local FetchFile Binary.backup\r\ + \n:local localDir \"[usb1]/scripts/\";\r\ + \n\r\ + \n\$MkDir \$localDir;\r\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +add comment="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes require-peer-certificate=yes +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-store=system +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-05-28 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/20260602/20260602032001-Diff-Config.rsc b/MikroNUC/history/20260602/20260602032001-Diff-Config.rsc new file mode 100644 index 0000000..8ec6860 --- /dev/null +++ b/MikroNUC/history/20260602/20260602032001-Diff-Config.rsc @@ -0,0 +1,8 @@ +843c843 +< \n:global CommitId \"main/670/7de640a1\";\r\ +--- +> \n:global CommitId \"main/668/b100835d\";\r\ +846c846 +< r: root, in 13:30:03 01.06.2026.\";\r\ +--- +> r: root, in 23:45:04 31.05.2026.\";\r\ -- 2.52.0