From 6a1bccf6c8924d3c806e0f1f2571cf23a523d3d9 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 16 May 2026 03:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 16 03:20:03. --- .../20260516/20260516032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260516/20260516032001-Config.rsc | 4790 +++++++++++++++++ .../20260516/20260516032001-Diff-Config.rsc | 34 + 3 files changed, 4824 insertions(+) create mode 100644 MikroNUC/20260516/20260516032001-Binary.backup create mode 100644 MikroNUC/20260516/20260516032001-Config.rsc create mode 100644 MikroNUC/history/20260516/20260516032001-Diff-Config.rsc diff --git a/MikroNUC/20260516/20260516032001-Binary.backup b/MikroNUC/20260516/20260516032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..5e3177a755d8d3ea4901b0be723627e9c72c7716 GIT binary patch literal 380167 zcmV(iK=;4zsF8CA%>@7!xO*T{meV(@AXHVlZ%`}%00000000080002M*aryUxKl=+ zXI|jr-=AIM(-^8b6^A1O9iJQMq%mRT@}`zu@tNc{n;bn3*EV;SG?@*mA7RJ;Slh_C z14Bo689uG%FZnNp6R8B9WdaG@ugjPRkbzf@9TXY) z0iF+ySUgoJ_`Bs|`b%cBc}4U0)@93Jf`DwkMXSaJMj+#;3a+y8UncU#qlk>fltb^~ z#AG!tR5So6U$^e6c?Qyt_D;F$ko#>k)@xblVK~O8VkI-`w~(+4SmR8xO+} zl}F}dIo~jqtbS)*QPbtn-4ZpIEqK)dCU_n<4* zAK_(-;CwYt!2eSIt&mBb!9fZLcu)6;N&>{ z7=Clpr#dqy9VvF`@J;U#stP&(j9oRZ)T_v-Mzg&v?Go%CUyiVlya(Jp+gVzA)_eBH zrMd4n@>@j{vJu^tXh8YD5GukO=30tF0I8V_4*zptRMUqE-3ICjE!#c_9W8$4@=hKEjcOP3XT z6U-)~q0iJfF@MUNPVQmbul*cL7Eu9#{Bd9wWf5Shh^9x31&!VN!~$7=!qx#$5P3yR z-A>cbR}-RV6%G7Q_{fwg>|W4=`&TG8-7__NbVR=JDh!}jva8y5;3YL(0u?`;4eXzE z3hz|mti7K?P_T(6JBymDJW#R%z-KnZe@E?3MYSuX4X6037_3NNbA(d_nF5OS=v9%? ztn~NH1Jq^0<=~p`t!gNvP5W!wC<~`NIHNwV3T<$eSXzsr&qNe|q}J7Ml3%e1N2NI; zh^9r%>lW5E2x^TeIN8@Zy#d)%z_^K`xT4UU8fGTFb+c>{_ZuWi>I?|7D_UeAPPCef zi#cLcTtJohVP~i=vK$|jsTn&M%U6H3@CT~B1Hp0$*ix0oP_KxY^$t!~*h`df=(PBy z)1Goi5~w%U2Ez`;Q=sDUXk!b*5Z?y1emqMAZv(7HXZWU}6yK$oIr+p83Ew$=AM5UH zF?0R;BSiV!n@l4u%&<<)18X9RM+If{mknQoo=I{ezyMfQpuTX8LcjAMZE-L|tS0OW z3I?&t_N4365dcp>sZSZorp-dJWdg~`jWga~H)b2#16n_;_tTk~=;#XPB?A-=h@$*Y zcIbX^;xDDz{6P?naj2n@Rh~veaQHoT5qO46NpLDyVCTxPfWDhwW7a1sRq7Sbl|+Y| z@G6Fsd6Z+|*)Frh%TWFQGJ|h9aaO&$Pw&PL1aj8f^B){B*M!J2Qp&;aN#IR#)f49^ zEQze8PNSeCIIj?L$q8omN;~ciG6gi-7`dM^T(&FhER>B0%Z* zE@8e6Q$Nh<-dt>V6o^~HDtKIo;TxipjWN#?-FR_T_hFRxR3ch&ozl6*z-ETaWr*GF zUO(zRk2FB5iyA=iZ$E(5mr~~+t5~UQ0=WxVNm3K^w7(m=P|p-eGN4i%xn;n@laoa&@X5}1j7rUM#u^Q|3AX2=KXS7Mns#x5%q z+(qxw#59sdAB#f)BW`8rGP3YE(BondGb#%?j<~Y(0EU0eHjhja8J|q095{_y$im!6 z(n?HKEhtDN2l*k!(Uaj_nPu0f*n}V%TUt!VFBojLUuQq?-d5)+l$;J1MLe9 zJZ|m!!RgU^5jdg{-H}0YkTf)QdIPwh@8a2T5$-!19upP$b+qOwR*Iptj*Yx z*D;64__WOCA*_1iC;{56Yt#}9rBBj_=uN{Ktn zHXFy{762Q%Nz6IK%xOG`bfXnTPe3GVCl8HTlc_Y;|APRhcOYBQujidj=@~r{^_9Dt zsM1H#e(Jc7HHg@WJ$ufG&*F)0IPy-XF^(-C`%=;B%4A#q7U8rv`5gTac;_teIfD3J z4D8KycQX2HByVId(6A~d4M_ijNy90S>%9RWo!Xs34Hzw{1P?5j!S19nvm(>x(VcoR zFy8+vC-wHEfoB|wo_Dz2-_T+(^fJBJXBR#RY;)N#SPgSY+om@&cT|ojOoWm90&NSLq6NV4$4!?h-}CF7!$Ge zMg6+eop-i6P17<#$BA0NHSkTa^g!FqqYeJ7V?q7byAoWEBzTfw`oNUk6K{Ah6A~rz zfFyq#^%LCQg8mT~M)i)=CX+s5#Y!a2mK1>*{e-4NQye1I*1cO-QlqDS^h|_cq}4f7 z#jX6h#;J0Z(}EI2mBTL9!CdnMz;@n>z%+haUSYxJ%VcIbqNo%MCPIbv&`H$ zg|qkt`Uvd;gWJQ}dZ>QG*$Wo2(I>}1><6(_jNHWh4E(e>NmX8hUO%{=)406Pjgeiu zZ$lR426cQbL2vw&orO?Q2(RK^;_2JkvNV`DSH2E=wy>N6sVfqeR!tb%$2!r^Zez5` zSPx}KPnK^Tr0zwZyP?}?yWcv3(I3qfRV^~u?`h12}1==zb|}(;Z4SV zerT^>c^cnM_raALo9||c(X&)S1+*WHAkYW0M8j&|7rV@PaKoVR1(`eFINCN|mZ`nuAeiA{N;N=oo@ju;G}K zTNyjM1WLbPqdULGT1CI?UHDCsTGo_JY&BT{A^sI`?=K~b63nnl0+6MpXRX=zmEdZj zz59Zf0VY@8smfwO6i96@{feX~hNJZ5SYO;#CEoXeqid(-ANhu1MfrrV$=~jBZEoz{ znN!n4`?+#>yaK6=h0r&jw5<7sf*eFnL@pEHiBVFb?eSinZ`Kl83r6?D63FGsF zN0eYSbL~#!T1bs3dEM>k=n9k)z+Z=S-pQ12eAHZqJ;=n*Ewf{up8FAb79A2El|T!- zO0P%n9`(IhXRmqzh@UU?gsOh{2_tqeTurg^H=Ut~HrpriXMO5^#2SpYl-Ly0MnlEy3PBTVkwKY8Vq9<(-=YVL~W)$C$R z-Cjeqja(#mK8FGRG+0HtoUTbkq%~<7%T|Ce>132Bl;ZZ{ z>F9$Y#w9}({B0aFTrU_hSZW%?etT06&w#1_7>mdzK}iA0v@KEAFq8EUqHy5vS5dlF zd-SA!yZ^1`oFY&}Q0yt&2GZN-NZGfrZl%e{tDKO!jLO+vzDd{ioNl6E%$W*f1(L+#L&B2bLDXdI#>b~fY~X-QkD!hmc$d(i!%8>x@YoOxxiYdXsPHebq2 z-nr4{FD9a^D&!6ZqJ2Mi%wjH1d@aSV3fcY^Sw;iS&Dj;dC{HE?31Zb>9?m;#&mQCh z|3Q|HYd%9AF?Z+wG@-o-Uekc?A(6`o%^tICT!RfpX;Ctuvt=}YirY)xK71@rw@C5< zSWmdEJbZ`SD8a{Eye|hNeIx%L5KAU?Qy|B-Y$0P6HLn<>R|g~9w13dgZCb%A{)Fq1 z{oCo_)mI2LWg;^r6IsD(Cl5>r>S%Pb#2@Cs8Z!Ug5(w|P2Zgqj0u|9PVd=NJvIK>4 zIb`cZMO%n;V(D1sI%We>{UUd71#T$-(p^x4^rim%FNTHx0%4p#%kgRDBs>(0yT>Gd zOh-|U`mIYtK}l7Cd|Q16o8~%B`9}eWs1)1-1l-WDlQiaRnp^;Z)B?xa{Bz>MXe5hl z{4sdiQR;3-2Jcdz{OeGXuqt#V;SbDA@+?*Ml=VCp$>_fvKks(PUpyXTbQx!28Vz&CkobL?yh}9zyME#c0hIw#LoiHpXMn-v2_AZXN5V1J5hq3DA}_Rf$w8h#{00k-7R$Wm zOk_nMtx`=~1jmLmtf6{hbT|al8PZjn1VeEMet+@dAe^0iE!(l&_8;Lrgiquq)L<6l z6>q2u%DjvEgWvT^`A3j@+Uz9j!pjim#ksm-hCGeH_(f&%U9P z4Xd({qbsb1=%R;MS!a=^JgiycnkO4r(*j9K)I6w{YY6|0epDwns);5|#9bd#&N@Fh zio|vQDv*^$7jNdcojH}7bahp(&J*v&fT)HbRkItV!Zcr{FCk zjqy;Go;ef`?=@JdxWBZBL`+b%{?ikDq+54+${(IN^rSNb7i2Pw3WVh9r(#I#sEjcz z%wf2=FHUp=%t|06w>=4KgnTyINdEv^&y0G@HaGFU2+MD{mo#G&Q}gzS=s%G)Mwp(~ zxJaw)03oCL=I35iL4nWX9ea+ABzi!Fm*Hjm&bwlf9%^O?1meLdTS)VdBrAb+IoOwUf7laj*}-e1Y-Uhg=|Re6MbQ zV1`hZ3?b`^P5ja;U8jt)VGDP^fBDJ7g|+J%|F{vo>qRwPEKKPCo)ZSQB|=^8h9 zYWMq0x%%gCn|e+#*D9JDy@>TSCU-eEC2ixm6kL716u3Pm2hEZ`z2VPxMLXSQPhhKM zAGpNKU2CHzsLjR+Aa@wOK@jlFknd6YtALjg&39h_>dP(ufH05oFsoeE%(3p#V%t)K z8TE`ltY%9KZ%inkwXcWL@nPUHPBC2o%XoizWrh?d_XWiA3~Fs9~YP0cUswQ=AJMM*4+TpuQ{*(FJ{vuT>XEeVj}m$_@^*!#n{a5A~Fu1s!rs znPx^vK2Dcv0Pt(?I14!4W8z=?XR3-BD{Pi}B>Hb8SwT6bEt)9FQLR zZ@sb?V199)js2bTuKpOAKPZ$mPZ|XNP0UhnqirCOS;%~-Ai1aDr17YH_I-T*T3xCq zk*n{~!a2|)hc}*bmNb9OKgwSN8KfGL7u@}*@c1_7$c7be-8jXDJBgBU&6dHtsiN7zi-si!0;5t+?3AOH zP!Wejpl>rd1yC@8LTEqK1ijkM8zn&PAD?pGn|cEybVVeq14ko6sk4^;0;;Pe!4Z~6 zi8lk1B7D8>1r{jWZ2>15a8O2V1$$VGwy*n}qx%gwvN$7<9m)hn7)WBEOt^bb&!_O& ziU}w!_m7e;{B^IalS|n$>4H09J{3)uUW`90J;#&|Ld2=1o-D|44 zKt#V7C=*Mn_Wy)IM3GEs0mfI?;_yy!H^pc6Cr2u}IG!HM~vRn;Kls zCfv)0V^ptR>B=kU+#+m%EY?zxQF`y^1?C(@9M@WS8Yk)h=^g+=uLVq=BJhJtBW@w` z%iuE|{lB!^SSu$C03O&cUzM4xKNWa?GqEoMPAjD}CuW{|+(BYVvAkCZQG%3D`Y9{a z#1}J+d4C9<1I#Rg3g1~-T-Ku^Uj=#zyiRV3Q)iU-)|AYoGM7)XD6I*}5ul|S$l-PJ z?6M;_Ik4TkO?}3TutMC|OB`EJ=y7@dQVyoMziddl?4YHkhIjQ+z=ACOEL((lFO}Gg z6H4*!vBbpSIC%Q|Gvi{OSG4b`F_<@z2W%DzTc_#H=G}g#TzXUl$7qp#m6J_2N{fe* zW;|?LI!nn=#&(CNT51dnxnqGwBU`D%B=d)!Yf&L4B#!I&cR#|FxZpI$)lqBmcl2AU zUYe3i`WYRnBd6K;`5jqUO6s^LsF&}emwkg-T<2rs8@((|mbGv*m6=+q>vXp~S<+`0 z4K~*l>D>eiD_Qj|pv3J$4{G!|&&Qm^3Fwr>AeclQ|038-DOOb|%)p>W z6DM>jh7xBBzpBqPWj#^>;dI#K?fy-;l}+He`HdU}X^3SBS_h$d1=)2}-zbrclu<^I zVpe-Z)0`FE7p+0|=g}wp)E>u-?{6<=tZIiS)rB(I;Bf(ukW2dVrGQ<0HTcv*)KVA^ zra#+NKM0m8AA=H$556-Ok1cBGJ4~Gb_NJ5`yx9-T7Ine@@SE|xZ?Oe1KbQE^K<1xk z5Fnb>P7+I#&BqtmIZECP;kd<468FDNlmWFJRhH6+WM2~~P>yw{6>b|p(0{QzuFMMFfoGkT_`W?TU_5O$vD@Jqt{)hJ?xQ7JJ3a@S4J2ve%#w+&k2C_` zq|wlj-VVj_Z)hVH;>)tz#4C#4B|~CBlun}gGqx18#xxQB3gp4Rf(6Y1m}HdM5tD;K zry8JqB+c;7t-0*IGH*LrY_zgHz~NAuNyZFh2~yOeTa)v^R+2JwwX#nTdma*DFi}hm zbd(Ex_$?SrledyZ2i3>~L*T#jJrJv$k~OvC3GweGh*Hf*rOkg%`G(7O3a}54+GNG6 zdp2YRIgmeZp+6N(Sc2lA`NW;@Kx?m5-z=pU67R{i=%hC20J;NA>mFN6{TJjH+dJ&H zhdki^o|!e#dStL?t_umFIe@(?#?M_`rtut}5GRV1Yp`?{<~Sn?fUj(eJac`@+(tCi zE_Atk`fw0g0?l@Vp)Twlg3+tJDwoc<0W^@%{uNuA;z%7Clwj?@fE0w~zQ=#|Uc+f~$` zMdU4@4f|<9v47|J^gIz8n-g|nRa1t(BY@c-xk7_lS|55ljRcs41teCO`<05s%X{i&%Yr#Rm_Ycf2a~%xJnd4_kJ`BVGNdT65p66v zq+mbz1BkEcR|el!;u9=Qcf5(OJ#RtX$0@FnJ(9V zRG8@EnfK6L9t=M-bc03L{$I;YQ3a7Hjuzwa!Ms(?-AEDTKT@|s)oS&Uf5cup2a zkpxyt`A6P%0x6LvRlef+CtFBZP`0_nVH$6{^j}{4o#etqYIX&OYF=nw&U@nG%uvp3 zrvo2jL}YW{=~ZkL4NrjiwIS3+7YBusjkx~L2ZlY$n7@5=?^w91y=#f|n(wrHva9g1 z##L^nh8U#3LFoa#j2Fs2sefVsxU|V~L50ff{_s2N#-_gWektv#!1?_cs_cS3dAk`ZRwL+l2<>ef9f#WPYFA(f!$jJlNw$>6LEOLvXIrPm zWzXm+X!2>_ieWbOv!9vHK{*k%>H*2N8Sw_|4awt0B~=G7`p3t60JyFWj&>Wo{Wpo} zga6q+W_YNSObUvhZv{{JqGkg=7nv(qz9~ioD0X2=k15>#_zhCh9te&Xex%758%A$Q zx-GAw7gj_@(2~v#FK-OrAz`e2@!47EgU~339FYOFQuzOoCD*kH=q{8;} z064H#6bmCV)!fzB+&4h|vgAD6(Y2CvrPw8i$*kJAxF~ZV)8xJE$ksGg^R3d)nM#wG zB@)aiGG86~vTmve7tvrOvoE6Kg&Coa%pytqbtAh7BGFe2-u62BVc2b+ZN;O4#5W_^ zp4PEZm>W;nw`k`Ih&QdOzRP9`La|Q}=`rmJ_q7>kOu+gMd%dsSN1KN#Kb!m8UpJ4x zrjQ$#d0sXh8CEM0gl2JhBbsOTk07~SYjI*jjcUtDV2dZyHSA_L;#(dpX|y>PJhx6S z7uFpd$vyGT3(**oBbIv+N05*tm9FBjEi1&*EVKvuZsgDDAzGWJ!L|TNP%|&u5>wNW zBe5IEKoa8FRx9VfVX^OO8xF>QltyMaL5lTr(~f$~{I=qi-qA_K%C1{Hp!77Xl=fn+ zoIh&-coM#n$P1?we|$31V03BVb!SjrKq?aH&)fN&G}*xc1K_GVZ=+IY!Hzf*{4=Tm z3&k zq_+|tvs=$+c8(;cPQ1B;1frZ}0jDnX$M-!4w+4xv>Lq&Gv7f5Uz8Lhco|`3XFO1g5 zU}l80opL{+N!*tvnvA_GSxUSlxABPvWpYFtDmWH~JS>;ufCxX6WQK#=n9HRa`@#z) z7a6v*{XsAq>l%sIVe3+y%iY`lGUqvM;c#z`vQd;%c5D=d;QQY5A(yDJl1FlxoIw?9 zZe{k^zm;bkIHty#q3^wj^jGn=FiI2f=u2(vZ9Wl08R5t>z0f`%@!P760RV1AwwH*h z=2a+1QT>Y2oX>1rUS}p7FC8B&iwzc8e8mRnX^Waed7_9O3_&Sm^*b$9lF=V=53<6$ z_$9q?o?xuL8?23nX{-3Ng?$;ZcPlbew{S3;S)c8gudLGwkrg$&x@L!DATmZ?1QAzvBfX3sD{L5#g@^to!jFL zzDrstQ@asHkv$xCu1^`yZKQf?s3|egtLdYlceD#-MBzpT4B@_k(VC!-q%nFD_!pgZ z%v)v$Xq+W6juICqvO&!RktwU4ce9J9KU4$zGVK#+y40sjZi8R}p9wKHOU4FUu1F?O zT}p_>l^r%!%5Ww>WRo;5a5vA5FnhnlrbH3@&a^w^?6O5^-w@o5PwTZ`lS{O1tu!5E zym01P$}kjx z!MJfgYTD+n=Y-c`uT`vObT0iR2f8$jV$~v3aC;y({WNWs*zbiom6EZLzdAMVFJ?pujmx{~wso_hXVj%uTqr$X+Y^ ziYYF2^K+~NtSc}#Si?2+mFlq+RpV~XFmT$_{w9LmU<&?CS1#lv4ICS1{fjS?>CmZ) z@dm&ZRubUF@=o&cfRa+&dk;TuLq53UD$ATFfV#w3psC|(w>(07fOx^bvz^2W#|LMr zQ|<-B=6}v?)c+p0%d4NdEP^L1iO_CBluXVhh z0ugczbmw28SkpJCh(HggX1+su+V5JP5MVL9QQ9T z=nm4G3J)AAz8+p8HhH!FV-5>VrlM%NlSw|Y-zX|UJIb+)40EiQhz9; z2b^&Fg0vXTdg4A}_NP$6u@KiT$KidQuY_uwzA6?}r}L=-n^^TmHPd^$tk_WoT12HT zzqSm3>U%ujoYqp5ZBOo)0XsGTP`4tz;wt4B(?6!{7fCWF=Us*zG615gg9=An-J0$y zq;o&?{j#1KZ7HcJy!3df!Vd|p(E?nR2?c4oMM$Zcc3j^Hob#WbP%~jaSMz zB=^viJ(Hc7k64j~IM$=!(n!1U~6K z3`S*CmV}eXZ#rRUwAijTw3@_nB0j}P%6ZCG-uw5vm+w$SE3e;+!*$xM3^ij&`xuM+ z`w@#D4@!PP^bVhUi-SD|aVL-8LV!ALD#E|xs_8^UO}DmI+qFvhhWI@E`Ua4|ri9-O zQB5;ZxIP6!2MMr5t?(9Zvn%uzqh}fe z)n_e`J5aRkbdIp^_`l2#2LJn=)y2|v6wG8(en~0!R)jhgU<8aU?GI=AvosXlpz>E# z(z}cYfc>;9dmI;V=)U}5;W^Q@dSl#xh>{E>&PR)*v;mLXt?cGPLV9+JF14CkR42TV zOjffg9+?IjX*WOS{Mv_{b|zR#yn<>FCTZy`Jn#9!-v7>pjQY3fc=`7l=Iz+5S+1Ad zblFDH`2Df?qFlm(ys4%E6pF)Rew=6U`kk>P)Lb$%qy*mwr^H9W%88*SpFD)+*JoRTY}dK#OJu5n>z}CpmDU#1#_I` z==$24Wrsv5?ofCoJ{bnFC;NO2Qh^TeG7`88hQ2~6 za0vpfH*A!}`028zic{af6jmr?_|bE~FUn?T>Q(v4eg#I!n=qA99G|B(E%}T;o_AX1 z&1X({=ZIT`3?k&1W9IgJ0_C=lQjJ#T3B(A`a%A*yXi~+@ z20Bf7m#BN4cxe52@!k1%r~9a8HHRjf$_OaL()3F7xhGSysT9f-bjSmCzw;<2xM)FJc?j{F$l}4MKY>y)pd>Q>C;0fS9@5 znYs>O^}+Av_g7IRl_Zm5Yl1lB8eTdim{!nrBgz8whlSm@TUzvrUepvVFM5zf0g9MkjV{1X7;9xUh~9%vS!65}_la zd0akbpM;W@`9x6ik_n1Tp1mL^C#|}n(EyQNbJWgAjSRdxbV6g5ahW=eWwA+MM5pN| zgz9%LG>SpwV1P@3;WhP)euvvt=P)gY1=i$fa7$>|AuIAGVGb!i>C}2)b?YuaNqvd> zz+x~q2S84RppJ-e!2bVrxZDg=PIha6R~r!q1=5&mmTQSSnjZL!6n>-aP zklzhYL{a&|$LQ+an3m0$gV(&M@~A~HdFoE+nIMN&=Y@$;(RKhOyLmxi85d7Z`^XnE zIXFR*dQnhFPTe;BKr^Nf$VWJki1gwU#FS=3^vnVPG^g8)r0UXdL~F^lbE-q8mWZ8E z2jVQr|1(js?>}x91cfc6*+6{6NR*Brg+XX5EkpIjZ1N6|Zeq*_pNDZp9uhQkATi! zV#Ql>3=-@O4DY?+eby3bZ}PIl47#JicMo;Y!~8mQfquO;C7=bG`#KEt{D6S(hBgxh z@)_Rli*(KHEw1C;f(|5qCg$a+66@Y|!z8Y8LI@d~g9@h<>{`{g6S$gM-V8nB~otB7wQ6Y6wkrZ?=%ED{}qeDcD~T$vNW9 z;rC*RB%;poLxuF1pGMYvtVIBNwI5YOYTXwNpp#d7o>=q@@6`hYxw6%^FN^T5r3W=s z*+KInA0>_rmKm-!7iTMo#grCHt89y%B}C7coMWsRVfREX3uN;2ME;70;Hh`EZ(zo0*Ht1|ABqEhh@N}9=#Dr|@i z(PHV@a?8XAPThV(6?N;0`j$hz-?rSK+Pt8jkQ7(;8w;5 z8>iDp`53jDDD!2f{WAwd*;2snUl_C*60Q7}N^8YZL?k=G;!rRQ?Q7(2zlb^1o1V*p zvS~O-WCr3r$F$ayt1A&le$I^`n;Z6pstZ4tTqw*q-7}3BWjik=w{n_6toaW2k@Q9? z$|nX5cIF9d91AJJ<{E^t8!dau(FG@d_U@DTFDrWx2uz3Fz|`9PJq_RSsL_%*phc^P z5}rJ;=#R~Iq|vRjn}+s)-TX4dzD1GB@OM-l^xw^w3+yC94r<^g%2-U(F|=oS>5)cJ zEf2UM5}yxt6Tyj0M=7?0f>hXuwfi-G!(_63*$@Mi^GuJ<`$eT?D-W#)$k}9>?lN*R zUY0#+WXgT>ILUQ^o*xdxBJE8f*|E@3q2DrLeEGoL~BH}n_<1Y1?y94D>&Ya10#Vf+w-bw+;Fz9!- z&Dij`qI$sZyKW$zJaU>KpPF_bYf&fX*!b%Yn@9WygT}CQ3v+<`c3lOgk5kllAHS$3 z-HXKrr@jIVOQY%-Yr{1X@cVg!0e+3MFDaU~2Z=;FLQ$6bmlAD4UK-=cj-hDEX+7w1 zSw8`D!}u$Gy)iO4(-t4UTg=yp zh?YbWdzV%R(U>p<^sZjQC2|~5*mskb8`X2LON)h}hoae9x<@UY3GCHTggxWREB(%& zZ_5q}_U>7kGYB4cb;pvgi34ARxwq)XgAaddXv8RfGWaE7bs%_e0N+`4SJH1Mt%XPx z6JJE|=GGzG_9-q|9%>d4@OCu0w}L;7z>psgoufV;E$d}o<7neT&D!_%2aGEgu`8lB z_#8YDCwo(d`9BY;`eOsSMyz{_T8wLhVTv1Ro@2}h#NLLq{Hh=&h<2txxHodh98GR4 z@o)3f17G#^Us~eCB=vZP+&i&49d;F1>WA6gQI&t>|C#@zLAQ(!e`kJYTE-Xtt6MRAoXSmPf{1-EdONt6 z&1HR8aG6FC8U>_$Ke;o7*-ZC|v9=sc@(uXi!$CSu5U&{-04bOkr&SD zNPHMh5{MD^kkz1OH&dp`Dx&mEcPUw}GJg{x8_60a;Z;68quJ4hj(kC860(^XgN1Qo z(>MuJfQDAqi7(@v9I#A_+zSe& zp2+mJPDul;54QwSW#0W}uiQw*rUa%p{f$%W?0Z4|3tgRSCFG_JMPjvRroTr00rRex zR}jw|ltGA>esoUyTsAiUZDyh$(6*33ki}}g>x@ODl)->&PN3N&!tL&C;rofADH~*Q zd6QWN?Gm;G{u?Q>*gUa)zAh5@o>tqB;q&x0LR=wD`~s+g6WCl@%-pA4oiFLChK&wsYVmjy{3B>uA>@|9?VEqV%HL9 zbAZ@-UC6D`J1d8MAN6FDB#RWNLZD-B>;R&8RfZ=K|7n)J4lkyj=JYszQnvVd7{m)pDQUOcK?C7XKf{{~YQr>!O zu2yX%&w@c0f>M|FysS4@)iG`JB55t3Y<${%<9O;7otGKrS}PyaR^cQdiB#K z=MH~|D8g3trw(r+B}us#h!O~8c+~eJ<^h>JJ_2Tc8uD;~UwGq>WL$3@^%iiMPq|zZ zE#QW}927&@27Z5n*yBUi3VD;CHxf1wy=vqSvU(%J&$88)x!E;d(OGcO0&lcU0kduV z6fBth-5j90M^;CMO|BM*i{FR6bq6J1`7d?`-Q>sr`hpO#eP)xZZ%nRbSe0CT7bmzm}1elWLQvHevy{<~FN4Wy%y5+JEr1pZ2 zQ3b~0__=v!{&(+iIm&|m9IJJ}eww9d8{dFjmRdz#0&h?kQp7OXC0o0)mSS5f#46N+ zKhCiHk}^-AhsM1Y%djPiZ?b)-NAi$!b7tNDHL+PI$vx|;w>Iw+%2`#^!aH1tccvJU zA=bEkmP9zf%HUAZ`sOFIZ8=3QHBd>fJifaZRvXg@Xo$W-)N88x;79wD2YEhDtG^P^n7k=M4wzPSW3o|DC#q0Zr-d_ZfIQT$5HMR*`QGRjp zv0Gb`H_DK@+d^xzk~Hv0a{-YgoZ%Hk3Qb`FuhNg}ujU0y-4%6i;8`T^JxUqYZFF`q z``(DiG^lJtuO>uZ+tQGW&B1_p_ui|f@(No(Ws9UzuURpw zo}$;Ht0iO@YeuQZO(?i9Eia)DQpJIoO-#(sC|VJ){{qyCxiEr6)!DofJQfxRALFV1im4p-pn-(;BG%T6<(*`nYvhIpr1AD2{Qi6G%)tRM1AzwO~y%<)* zQkZ@D%;vqTkDj2G(5{-%G$EYT6&Y8#6j_DdWgenXFqh5?yFfm*;i$nNcGYZ*A{L|B z-hp&ye)I}=beyC797>){}&lOY2eUTljSQo_Jdr6TCllfkM84Ktxbvsjo zQ27ly0;~_*c?y)F%h!cy`^%us1@#+Gr!Zf~^zJTm;l!zE$#m*@`f81F$S8 zt6X_j@leLee~r|N=idieQag@7sL8RBC^M)`8R+9qo7%x5H&9h_>i`f+H$51BQ2Wu$ z#yZI8?|S`P*sezI*vVb2jG4z23;BeAwvj~$#*Z3V2?U}Vo;u;(Y?TczYPhC2P@neZ zFS}c8xlP;sP5GsfXob18R#wd>O04Xt#Ks>%fYM_>Ilpp)oh1M1VO$)eui?F8pb`Wu z==+j^4(G^tt&H59mRUu$W9BNQm4N#6rqf$5aP_oTc_>iWkT67DiKW1nEdW zpmnXn4g*F68f731WdwaloA)!v`@FWq@^=AcL)=BHXLiXRzmeov@ zc-o2JeBJFQJAg#azpb}27WPD`nMvTZenTY7u8P}p;7;<3)HNHthbfl!%!H=XuN2(q zc%Yy|r$Xi9BIdWG*wVnpQwLH-!Wmhz?(TbxwA=30m_RV-8Wn~U_-jA`tjPBD>9~`Q zWQ;cJ!i_>YA-snxSOgSIa>lN0u=XH1ve`_tdly)&5hU#P01a&-!$8{?Db%!fM#3Q9 zA+!IR%cJ?3->ViQKv;yj--lfQ|33i04B_5F-rR8PEM+;rOkNed88w{MTwes%j!8{e zJeozx+g+2h#t914rijiPmigUr;=8VVjmng--d;3K8ww=gW-f|*BIy5L0vX^UCY#V8 zic=*n6dAq$;HG}~3$IS!x}Y<;6addjfCHGBVLz-r*99_?Fc7V|=gr77QaapTH_v%e zec~6zvr`HeT)Aj#eubPIyDm#Efc6x9R^C4b)My3s1CXS$_LJgML8m@)EwqCU9&yZ(r)G zPy9eHqEF3Y@_=gWeT$SvqBjCbt!{%O7~R�v|Dh?3&QoU1@BC5|{Vbk_1#2mX!DD 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%0AW@9qYquIS0 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%0D1b1@mV;)~-ajZ_1R4T)z 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

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