From c3600e0844010532f0e0ff71f8addbc8b409fc41 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 11 Jun 2026 04:00:04 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 11 04:00:04. --- .../20260611/20260611040002-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260611/20260611040002-Config.rsc | 4790 +++++++++++++++++ .../20260611/20260611040002-Diff-Config.rsc | 4 + 3 files changed, 4794 insertions(+) create mode 100644 MikroNUC/20260611/20260611040002-Binary.backup create mode 100644 MikroNUC/20260611/20260611040002-Config.rsc create mode 100644 MikroNUC/history/20260611/20260611040002-Diff-Config.rsc diff --git a/MikroNUC/20260611/20260611040002-Binary.backup b/MikroNUC/20260611/20260611040002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..6813c77c852282acacb82dc1002f8e7cf581306f GIT binary patch literal 380167 zcmV(iK=;4zsF8CA%>@8*gQq;lx=1(`|Jp3(ED%@#00000000080002M*aryw&VSZJ zN|@*_zE&3h{UQUU#Z×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

ZszY=*2vt@n0ut-- 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

! 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

;Y-7@b!{6qG8uRCB4;dPncR= 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

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