From 454dbdeb57a127f8b64c313a237781be0d16eb65 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 22:20:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 22:20:02. --- .../20260430/20260430222001-Binary.backup | Bin 0 -> 362265 bytes MikroNUC/20260430/20260430222001-Config.rsc | 4179 +++++++++++++++++ .../20260430/20260430222001-Diff-Config.rsc | 34 + 3 files changed, 4213 insertions(+) create mode 100644 MikroNUC/20260430/20260430222001-Binary.backup create mode 100644 MikroNUC/20260430/20260430222001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430222001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430222001-Binary.backup b/MikroNUC/20260430/20260430222001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..0416817adb8c28a5bb201c59155ac0c9c1094843 GIT binary patch literal 362265 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∨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

b5IMkx3Q+TSoJyW-?X(GAY; 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 z zEc1vNk*D4j3U7%HKYgHB?#3HuCBC~vZ8lx3S$YRXnf(eWNY>anp9E!>O*X4bZJ796 zNTSc;*YCzzA`P#L<1z4!NP{Lq4VSDPI2Sb;jMilAamk4Zd;8C<_08ZP4VZWWoaR!Y zQuLr+WU8Fd$(Zsh&+X-$mV0A)TNRl#F1TIoN3T}~Y%5ON_Kq~2F=;M1DJzWzvy6NA zIM0<(4uU?8QbgsW?YM*Z$hY$YXvp_MH{}%+F;I4cyB3$1_|messkI3N&Y$`s{Rweb zl0{6-LuMjpBAfLjoX}E|zM#{6n4q8U--D4U#ysU-+3ES}R1x`mwtD`{1kLo&IhHL- zmu9J*D!;+cCp6nn6>6`_SxyN#We8>x_28puW|JR0niQcLSSBlnU*C4!Q&iaDcDQQl z8Iwi2;$ODm0GcY|YEGb@aJ|lBG9`Mb^xV<{;o>fcUL0(mAPcOaccBJq$ZH^Z&gum$ zTk_w0-$-=+UpdvRQoBBIL*xO=fYr|1^#Tfi1KO=O@U|OM{1jK*AiknKtMuBVkI*?m zyA!f~YEC-WHm@4p>){;xUV6tB^E|QAf=`2W2jcH@{ZAVg=38w75;5aU-XSuqsSQ7@ z(Apoh)?5hZOYnJ9r#m9ck)WM!QLUp)gJRNPw-{4CJ(1Gdg^~M0YA{&Q6&?sDyb_?) z{2C185sXfuB>S)V{N%PoyLK781cFj*P+!Znx}7JuNIwaaVn{ymkkN(@3! zYkHIk*4M4ZEa;{Ms7E4w-q4MS%N&7zl<>p(W}O(|rpKeX0Q@w<+5NKO6^>@Q*TQ5~ z)8G)rpNthORJH#8?n^2x+dODl%b*=kpKVEQ<5jpYJnvY#*#mRHEff1I1bv97BxN~X z3&tZ`dlg^HHz_qdG=tJLd*kGet;=X_%8H()chDtT=^_1OXLKv0RtV8*tX5m?y?%27 zR9S#KW|1q|+zu9rMAq=!+=_Su1BFcA(mD9P+BH_pujYfq}ohPw|A{hgDk(%+KP~aLk~HR z2NM)lO?ewxM^b5(en+VoPN!p{>Rz=r#jZ1no8$yUpv#3QE`J_afNPL*H+yeSC(gQ% zd^0FHL>)0fR7tBz4U^9PbX++f$v~ybx9(4PA8BtkWd`X%L>KS+iFy+@rl_K9p|3e< z67R^I4~u-?KzFm(BxDcmRe)(Xj*7>=daVe@;PlMK*Kg!3AT;1~fgO3XJ>iOyx?tgB zyUnz$HYhz9w+)M0@Rr#1Lts=fJEyqqI5Rn};Nmx7n00D0T{ha+qo;+3pMkO!b8Puw ziCzF_6rSh3m`fX9AnKTa<7j`{Mdzdlp9-DMl@uoKpWPq#bkIIwwXMdOi8N8qBow*| zKPFt)lAf76gs0~fp8Jg@o+dIh8g!V);{05_SL=>J02_c)#-x}`5L4%Fy9voGiPXmo z^<{!SwnIv\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix \"\";\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\r\ + \n \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/308/f5b1bfb4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:50:02 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=mod/AM-TG-Notifications owner=\ + mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "#!rsc by Vados\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.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 # 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" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260430/20260430222001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430222001-Diff-Config.rsc new file mode 100644 index 0000000..f5cc88e --- /dev/null +++ b/MikroNUC/history/20260430/20260430222001-Diff-Config.rsc @@ -0,0 +1,34 @@ +817c817 +< \n:global CommitId \"main/308/f5b1bfb4\";\r\ +--- +> \n:global CommitId \"main/303/124c37a2\";\r\ +820c820 +< r: root, in 21:50:02 30.04.2026.\";\r\ +--- +> r: root, in 19:50:03 30.04.2026.\";\r\ +1354a1355,1356 +> \n# :log warning (\$0 . \" Public IP address detected: \$PubIpAddr\");\ +> \r\ +3322,3324c3324,3326 +< \n:local installOnlyPatchUpdates false;\r\ +< \n:local scriptVersion \"26.04.30\";\r\ +< \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ +--- +> \n:local installOnlyPatchUpdates false\r\ +> \n:local scriptVersion \"26.02.12\"\r\ +> \n\r\ +3624c3626,3627 +< (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ +--- +> (ver. \$scriptVersion) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ +> matic-backup-and-update\";\r\ +3655c3658 +< : \" . \$PublicIpAddress . \".\");\r\ +--- +> : \$PublicIpAddress\");\r\ +3809,3810c3812,3813 +< \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ +< ________\\n\" . \$mailBodyCopyright);\r\ +--- +> \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n\\\ +> n\" . \$mailBodyCopyright);\r\ -- 2.52.0