From 0d43f6db976a88d4780d220a5d4c7ab09ef0fe44 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 21:40:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 21:40:02. --- .../20260430/20260430214001-Binary.backup | Bin 0 -> 362194 bytes MikroNUC/20260430/20260430214001-Config.rsc | 4179 +++++++++++++++++ .../20260430/20260430214001-Diff-Config.rsc | 13 + 3 files changed, 4192 insertions(+) create mode 100644 MikroNUC/20260430/20260430214001-Binary.backup create mode 100644 MikroNUC/20260430/20260430214001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430214001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430214001-Binary.backup b/MikroNUC/20260430/20260430214001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..570486678bbb8a6b69b38bfa25a18b10c2e885fe GIT binary patch literal 362194 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%0A*aht?Oj?b`TOdKW9oG)Ep=> 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

`PS# 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

;(6D^xh{4VdB8nTni=__R zf=j;|Dbd*$==Y9wmD4>YVtI>W`4%e_ku@-02L1Ze}zYJbCT-AgCzJkZZoW~B7$(? zd~p;O``Q1(JGTBU-s6sqaF$~kcv#`SCnJ=21S=9GbhN+L)0-6&4MBXc*rvA`VFH&&FUK?NWH@ld$_z4!jd#8SAq#fc6IgG6CgrK7WsZB!C#Ys+ncP<+xSjQQrZ`U#H9IFuYa%jh{W zZnJ2MMH^W`;`QgKg`!_{)1%i1h9|Hu2fWg7j`}j zDaAx`IH1A(H_>cQa8I2AWc+JSh+@OO{5_fKIL!MowI86%}m;zUY3~fLt0TB zUWC}xQxd}8MESS3E&(v+H#8OZ_58}-S?j;uEVWF}Vn-X%RC>=mVn^N+*%ott)eK@s zWQdmqU!b)6xBj|A7MD}>c4uYl^+2r8h{1|KcB?BjRHG&V^J}Y$RXSz^P;n2cd@FJc zdHh9uqPlGP^Q~`qN=dt-O=vV{hf6b#U-`BA)Q@LuKwM`guzE8@pf9icL&8eN<9J5F z=f}RpN(Hg}pjT(Lcx8EL>$#3Ylf_0RyGhnCcBP~0N6dTUKZ|;&4*rz}%g4$gv!)~j z=>Su$#+7jaF0KCl>i_u#AjI@!LoGSwNrs2RZzy1rPIJ~bQ7WLPn5)V(P_UFMjxwdd z1B{TFkbgqF9b043qw@u^pW++A91IGTju%{!Ax;I?YD->Mzpy+_TMsRl1H~(w?_e;` z1O}M~UwJ*7SuBs9^Qiak0~%esc(FtU4{#*;0h>)@bX_`$5TdJ2nYL;igLcdpt^mk=KY@&|yLw*Gp}F7=4ST#NUy;z;*V%? zbv=e&UqTX{6%=0L`BB+lI!(5(q6=1n_E#sLpdwOwgLj=_fkC=(Q4)-~RChW*C#mlr zJL$V$CXfN}QD3%bZhkt7Htw6s6%}tlptXhEnsl6H3{vB8TUBRS9Ly33}aF{ffQo$F?{+Vll|^(%FK=S-00 z(s~56*5R{??-2!k2PoM43nemLD+Elg1q&8D-~B%MP-x#&Vv|eZ6vl$>x$q;X>jWor zGUia1CeUf04$w@2tLB;jsHCaGL((=^v${0{9cKGITCBe{G1hEc?i&(jFsUU#>Ljt}*!)9&bR-u($ZuWCK|*5fXjfYx*n^nRN&bv0VXNl{_2Mjjt(go4`{b%s~${ z{X4-dmbYm0>+Gk5D7veJ>pUcWzJ$4+@}}VI|Ejgz9li|H&x(bc9aJ;?HbMd*dr@@U zbG*hyYCRUXLgY5v*(9fVmY;X>LR1&xb>u_vwTqb*o7i;)!L>HQBIL)75jms=@LWI^ zRc2Zu2aa84X(q)feRph1Oi+|_%X4VtyZ=)jejv%ZQ%4@ZrLj4re(4%P#8J(u+7( zw9@$6%2gBp5H_zeT-r9)de5RL`3*$I8U4Lw@N2;qZq(+sFj}T$FpSckI!Q zi49zdn}^$Kw7uCCK5VdarAy_KWqqy~12&dCQYHktV`a*qBZ>SY_M9B^87GLoZCp?V zc<{pnS8tAvOP1v15uez^PEMj9E}fI1%hB+!j?7g}FUA7B5OkS;8SjMN=kwm>Y<6ob zB!_p(O5mn<6a?Ri?yt5;QbVp%+QJ)^jN$7#mxW7f(D_{hCIn`KY6KpT)SesL-(r1R zI)-Rj>&*mw+RPY-?_CdH$XCdn8HEwgQb3gD$CWOdX&^gaR41XxhbzWaM4Qe*IYI=r4slNv`QYXc0q_2e~?uRh9 zy;&Gh>!4DNN$ZX%cxe2BH7i32f4HFxtID*zsoUC9K5TpIpNk`0>lBCHNs1}T56-;U z4;qi#?)APv{nmgiJap1HXugc^@x5HPQJWJrF!vF_+vaEpba4wqS7G#?Z-qj4@kq&%TFK4!3GJtAwt3oqk^VuD zu-1yQ{MCZw{FSt19^!eCK{LoED zG~=t8Y|1pOixe33A`$d8m|?Jx$LswP4ZHAJXlgx>OBHSff{v2( zfF3!*>~9zr_aquXv~w%^JTPC|S6ookI{NPl4OTc8G`?zZkZV-hI)S=;4WTr7=0b-$ z948zcou$vGGhs~q@ZZU>`wAbu#3dCym%r2lPYZ6fjo*A_!)?5?@}%xEHAogO*-c=r z;LyZHByi<-UcR#c`PrCloc8>6%87G&FNc1|+`zBFX&lPm?Wgq*U<~ZU>EDyfmBBeC zLsfz6JcsL9wllw?e)2)CdH-c0A?dBeXbbPV{jWAP1_=JzU~OOD!0p&vGk^7EdX3A2 z7c0&)k1LiiIi$Dy+&EV?%yL->pR7K6iT+ zX|Rty(6C>gsMf*cm_)t~9~S=E8xilLTNTY_Okl@JPcbGHVAO|}4}eZCU}>TxC#nx~ z0YF-$wqkxe7o6v&4)Hm7Z>S38U6HwiAo>M8JV&2%cBQUf+gArFKKxG+xkjC!W7%X7%X}X&^>?CF~A3Sy{M$UJ4xNsUAjU zBbIN~e#b}PJL8*DO7<8zs715FV{m)6;4thP^x6qeo3a9ZS+}{l{y}vWrJqsi?zE$V z^u8*d_Wcg`4`v%w#$h@RIQ9-@-XMajjzv3;Vo~xNUfN2x@CAJ6?t3~fhz9YXDkr~s zum=NX`0EK+vfxpmZg+-WCHq0Z0mFl&!-pk5`omFbPAjn0g(5^(MDFY zO8xbCb46!4wE4IRdcP@I1^+zv5rSKYjEGi=L}a&p*sMc}(H$mH`5WV@KnqLSW9|7p z**@*SrjBy2aq`uuXILGY%A|1pkN<4Mxwqt|?#-10(9fh?-|tDH1P|o{v7R?Y%D2f` zSn~1j0?1VDjg9?;#qh0*@<_X0A$cS~e%kcqc0t*n>49_F!yeFZQWFE%B94>8#tXeE zk8qfjT~p;McoY%wI3*RHGszIiUnR19arpF|iF2YRm!UR(V9+{-C$)JyB&&>61E8C5a ztFkZ+im|;3Pw`F1N8wU0CS$`RkulgIA~Bv_u9X&>nm)s_D(N;pB%^S@^Jj4z<< zY`crRvV!oz_#mCMBK(K2Yc3hqhUbFH&J&qLLLWJk?b^W+4}rLC-uGc9A-xv5*;W7I z@c$8X{_7wiVHa2^P*5y3^qO9Cp2J1+k_QVP@=l152Bqo^b4Y!!Q&eg@VYG}H!xl0| zNapm`npML9bK!AJkrUL!V@Y{r=QDZ$Go&8G-eY~m@m(9!^X`0Fhx&UiREgJ$sW5JY!#RT?YG_M1;YO%?ryOwWm#Gv7?S_UC{V zU%T``jVV=&$s$bTdkh7tp@ZO2n@bGXdceb+3t|Gw+Xd-!yfkNudq6&ea7jM zkxR?D9I;*m!Qd$TEkf@>b!}(4r_l91;TU1?)d}7-;=Miobysm@;5c};Nwy;-!rgA% z_Z20K|Ty+vhn)oHSJZ}=ie|SabQ(Pf&TRcnNs6mhhY!^n>`Qn3;82SLHM7xjnPtsB!ug6hpF7#k@TgC#Oh#L>a18EG5E3?KIkKcW0$g;oe&4Wccd1Xgz1pff^^TB^W-NV%H}n+26D`C!qZO%%a&5LL{uk6CW!1_NxzO3024)?9vVF zMr?)0WpP{!|E&J)4KV{EQ@qnR3{`IKHB?mtQJ0LCrnV}o?L@TH@TYA`ptQfEeqak(43Ho>LJEF zo*)9jp;y3N@i?qk`}Tio%5@A=BF#^=^&5=n!J!LTd9E<)h!E*xdo$F9#ELf_iv}_m zDBphfD2g%+5m^Tay0BLT$BrVuo0{?~l_DQRMCViWzbzG)A{tO)?0f5p2dN)I@I=Ln zYkuXom!!AK!Zn-IRt7opi`NYTc+1q!!-+rRf@0hW+lbjWgw~y3Py>g*vXQBQ##1>_ z&>Uq5!glDgmVEje?4}mBc}ktEZ+nX9Gues%)!Ytnq zH*sQ@Tbyn+2Vc^CYUvse&kyeULn(Ne3nAl2U52v*wIUPH9?g-#7{Iaqsw>-tdHC-9 zrR<<2R@ALu&4A36L5ip!AgXFBUe|eGaG-CSKBc433EqnuOL;=(8a1m^EpVLO^#3@~ zcP>0%$T}cVWU8U!i|4EsbgqRc|IR@hp#DGLC4$8}CUU z6$*QsJ-TEh({o>w-r5>@s6QsrJ65mzqa850Z1Ovpyl&9AyO_YzA`gtW+2nr2u99s| z`0Qe;LX=UWF++_g%K~Y5@TpFiXkpO;l@kaQ2#9@)QQ;aBIm|VTi8hnM6tAkzLa|y1 zhc4q&Y9Zj#tgg7VS4v6Fy?uF?{mr1ztMwu%<{KOvWF1zl7^Q!RrRkwGKNB`x%v<@h zA(`}){qc(_z*EGgoLA(}f+UpN(ALV7BSF~L2ZbC4fcTEAVFB3&Ci#;V=EBH2J&)#F zoN(dSs9N@{IC=dtS%!i(;VJ1On#+kdfe%%@Q9Xs1qA&=A zzUddqX4UNOWPGtMUauDz;}}rNWaEokpqjlQ!-f0~zZ$(*Ij{yv=ZFhZRUv@M{P9Nx zvbX^MnFY&q-?4P!I-x6H;$$CY4>;()tmwtGn6rwIQJ=6xGW|gBDtXq{7olnJ z4}~O{V+>0)7xy>eB&tL)UpL3@_gK-okxgA^#GiAwWo!dRh0+v_SA-wx&X}FG0Z*4Z zC~1?~n|Kpdaj*%-le8Quw&<|lT#RT*@x~V_z7rMEC^~IZuCiTk&S(96SvbL`K~i7s zaOv@dLchqWMJU2Z#hB4M*8)yBjqNO>OUfBncqge*?JQ z?1z~OS{k(7DgVQ0dz5`*Z>g9M>xij+$0!CjiAog!_$_-EM=%)Ppg#TKF_4T%Eq#~$ zO212=1fIl`U#qhIkgTtjki)Ee)@iW8Wq^U*Q&U*6j65*UYM%ZgCz!Gw9ZJl`FeG0q z0$@4s5^bG{Kkc?!9yZqT1jg*}0L7Wj12Hq{fF{9ERp3M*6ttiqwnVh2fl3zA=ekcB zlr?iv?*jpsO&0JbdJn8mE!5?$$rfUe_Pd4bJBv80dxOVrnk!IIy&_Casb?9+Oq%JR zLvbNvVSvmS?*(OYg;cUNL3^wPzKvoxsglZS&7_Sxbh~a^86H-oegO;NqOdGx3?-N)^i}{2>N*V*-S7x(8W@X6j}eb(<{05! zJzDdDJ83v7!<3?nWLY;MYV6@4YesCYPMjxH#;BNPpbTSSBRap`PJatLN{($R0=*Ll z(nc)anYL)Wrq&EgIz0?l)_|)G*bWFTlHdXi)9tFiD0yJvuC+a5mVYH`IotQVbqP$b z3it#%c%VDqC0JxDSY&3i>#JrS z;x|P~aGF!SGNcgyjy+tuHt6jMY%YVtALlv=595j6PyCP3komden6AWF9Bb&DjY&Xsb+5EU z+Hz>2Fkq?9AfYaQ@SoU6GGerIC)hJjbvr?ZH!I8YG=H2pH=f%JX~Rm0-3OHmdjc7C zCj6t9y`{w=Elo&?AMYIV{&vO55JL9J%zLoK2xq1fAO#yyJUR=04f6TH8ckvEM-D2J{RH8q>8?2+-D_Zf)`k;DcR3`=Q#U!bQ8GklQsj%;9&?7P^SlpbUI-T7(Qb?(qK8Ixjq`3{SFYOZF5af_zaMeL6 zkU+f5mjfiog&}gVkr5pHy6I)JPySGtl6S4?l6Wh1WS#C1>4sdSJ7_~47(Ng1W5Fql zkKJRuW+@sHkli98ZLL?_DIqPEs!iG&3G&CX)MM(GbPKJ}=NMbPrf1u&alln@G)AAa zl7HS0&5WCRE#rEZzopjhM0$P2gqFSl(mIx(zO8~ZJpRyyQg zp~GkOwISZ#Fpm+_b=@>%h!l>PO;O`rnyq@`EZz{|lgC%|jxO-Q-2j||t3J}WF^ICm z3lY>G&Zj_4ik+a#LqU*?ylO ebNUmBbH4Ja^gr45G<9GG9|)bAt\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix \"\";\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\r\ + \n \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/303/124c37a2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 19:50:03 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 15]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=mod/AM-TG-Notifications owner=\ + mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "#!rsc by Vados\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false\r\ + \n:local scriptVersion \"26.02.12\"\r\ + \n\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ + matic-backup-and-update\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \$PublicIpAddress\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n\\\ + n\" . \$mailBodyCopyright);\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260430/20260430214001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430214001-Diff-Config.rsc new file mode 100644 index 0000000..e4b0d54 --- /dev/null +++ b/MikroNUC/history/20260430/20260430214001-Diff-Config.rsc @@ -0,0 +1,13 @@ +3995c3995 +< \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ +--- +> \n :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ +3999,4002c3999,4001 +< \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:local testArr [ :toarr \$PublicIpAddress ];\r\ +> \n :log warning \"Public IP address detected: \$PublicIpAddress\"; # , te\ +> stArr = \$testArr\";\r\ -- 2.52.0