From 0c08fea04131aa16c142483c9b656af6aadb3e80 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 20:00:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 20:00:03. --- .../20260430/20260430200001-Binary.backup | Bin 0 -> 361780 bytes MikroNUC/20260430/20260430200001-Config.rsc | 4168 +++++++++++++++++ .../20260430/20260430200001-Diff-Config.rsc | 11 + 3 files changed, 4179 insertions(+) create mode 100644 MikroNUC/20260430/20260430200001-Binary.backup create mode 100644 MikroNUC/20260430/20260430200001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430200001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430200001-Binary.backup b/MikroNUC/20260430/20260430200001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..5997ed1ec584c1545af4469910bed6e2440aac1a GIT binary patch literal 361780 zcmV(fK>EM$sF8Ctg#`dkB-(Zzjx=Qkv_vfjYfTaW00000000080001J$p;9>xB`u$ zNuE1W-Z+NLv7fU&1YtOD(1>Cf3j8q~wE?6E_KZmAPmXRr#Cbo8 zhw|J*vL~yBy4ue+IklNe&(wO|^x!b(xT$6?$yXhQJp&$dQRLzp0M-4oxM$Eov~@1I z0l$dWhtO33i6tOLWC!2cug|C$R;MShks*}Hjlz5><;;zrG-e939QV~LtPXQL_5r@2 zQ<^h56rh&tnxGO{X)-(fld-sLIfAkBO)b5-=ep`-9kjNKal$Nm1YAQlNWPAkXVwpN zY>MlbZ*yGD%IGUIjLj?zqx+l<*l3b2M3=QZ>e#sQ-NbVZh|>DnyGcXU;;#8F!p5X$ zmF%Eb7^J}95B4W`Jr~0>581vj*S3w7(uGqd7ER%$m`k4dJ}3O`xqmg$<5m?bFy=Os zIE+861+6df%aRqajoVEJ?0PU-j=u*$)BNR}Jq-;?S#$`$?!mK!Mh*M)2WEnsL*ok= z$ia40wLQuUTF1pC9A+$57;as-R82yAb3?TvHn!SU%jb`7sLr^wNd%MuUjBImxPrbJ zZN~r18X}|J&46~{BUUp>lf>_{2J-%&gPqijnOX;=b>yJJWpmEg$c5pQ!9b`GUVzL? z;%#9)ArY4t<@_cXa;V5ZFOIY_yd~Ql1Ur$}GuDyPKR<1=*`tj?qHlLjpB(c}b zAN?99*v_oa=|lZxMPuP8BPh=g9F!g!CSYrDM~t} z#XAv!HodmY%a=DS-d3MN_}L2eE8csZ;ZB}T(Dodbv&qQqI_FHJuL)P(kN~a%QLTSb|Wbf=MaiMWw{#8G9AUt8wY_IBLM$WSK8z+y`@BOZ+l{z zkQ(1^>0tJ;#w*;7h5U^hVhMIxi{;q1oOvMqv;Jnd2a7Cw(L?43pjLZDi133bzssJ2-l0|}p70(I9JD+Qb%rw(!PvkoBK zh18^X6q8z-vwt8ScOm1(6rf?nU?Ej&GR!LKVQtQ9!QSbC06wpsPGy4Fzv@%PikrwL zja`lB1-uCzXe+9G+K1qM83_k+Sz!#^!A)$Z_Pp-Ed- zr(bSU2Amv0KZmwrCB4@R$Pp0Pq+D-BAGo^+n<`y0W}&%o2ZZqBPoV&>ixy*4>bimG zchF?W#^ABt}4A9pr5Sg zQAc;a7s(|M>m;b&ngZ(svLJ4V%Y!5=HCJe!b7m37*t9iIhdMdG+k?M-Hp2v`#4 z4vOeO`YXSg^ahj)g1E6yA||t!TMS+|22(bGVqmAI}^A+yv@}`J`y?GoL077tVfdFfK9Wm zA=JG6ugO`;f5KZO8(jN<2y$nXp~n}gov2+K0olt)V8oTm;L)Ixu=b5x^K1k?4EpEE zaJ0MY)#A+%zL+UQ9{v3S*G>@O77ANN$W(8klnbVXsk=KnV2foCN~b}`{c=-V9E7l^ z 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�lbT0wiNsy_Y>kZ_i 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%0DQ_afYvC^rx90VvXMqkX! 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 literal 0 HcmV?d00001 diff --git a/MikroNUC/20260430/20260430200001-Config.rsc b/MikroNUC/20260430/20260430200001-Config.rsc new file mode 100644 index 0000000..46c6107 --- /dev/null +++ b/MikroNUC/20260430/20260430200001-Config.rsc @@ -0,0 +1,4168 @@ +# 2026-04-30 20:00: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 \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix \"\";\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\r\ + \n \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/293/c17fc8f9\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 16:15:02 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [ :pick \$PubIpAddr 0 15]}\r\ + \n :local Return [:put [ \$PubIpAddr ]];\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=mod/AM-TG-Notifications owner=\ + mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "#!rsc by Vados\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false\r\ + \n:local scriptVersion \"26.02.12\"\r\ + \n\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ + matic-backup-and-update\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n\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## IP address detection\r\ + \n :global DevInfoIncludeIP;\r\ + \n :if ([\$DevInfoIncludeIP] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP addre\ + ss: \" . \$PublicIpAddress . \".\");\r\ + \n :log info (\"\$SMP Public IP address detected: \" . \$PublicIpAddres\ + s);\r\ + \n } \r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n\\\ + n\" . \$mailBodyCopyright);\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTar\ + getOsVersion\"];\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# #/system/script/environment remove [find name=\"OldMode\"];\ + \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\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress\";\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260430/20260430200001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430200001-Diff-Config.rsc new file mode 100644 index 0000000..77cb73b --- /dev/null +++ b/MikroNUC/history/20260430/20260430200001-Diff-Config.rsc @@ -0,0 +1,11 @@ +3983,3992d3982 +< \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\r\ +< \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ +< \n :global GetPubIp;\r\ +< \n :local PublicIpAddress [ \$GetPubIp ];\r\ +< \n :log warning \"Public IP address detected: \$PublicIpAddress\";\r\ +< \n}\r\ -- 2.52.0