From c8b698c7c5a172235174f62f7e211ea91729e077 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 21:00:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 21:00:03. --- .../20260430/20260430210001-Binary.backup | Bin 0 -> 362071 bytes MikroNUC/20260430/20260430210001-Config.rsc | 4176 +++++++++++++++++ .../20260430/20260430210001-Diff-Config.rsc | 18 + 3 files changed, 4194 insertions(+) create mode 100644 MikroNUC/20260430/20260430210001-Binary.backup create mode 100644 MikroNUC/20260430/20260430210001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430210001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430210001-Binary.backup b/MikroNUC/20260430/20260430210001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3ba05f0c01421f335511c21fd072f74b529b9766 GIT binary patch literal 362071 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≥ixL=8)-+d0#reSDW?H)&ECcY666O>()K_n5hR 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

u*nVIuOe0X>657c*Nz+`Yc^%H~o4yI$c zklW+F+6=DQn+})zTW*ubH6NW1M{Fxsd_B`p%1Z|U3Vc%cJD}TpX?s9x@(exDby73q!GNRj)NC_UjE8z@yIyZicH*l#0I24btB43aUGF?#bti zm6)>bG6?H@%J3HcrU_tzY#}A$D(|&>D}bAyk55|vMO;?F85tSP@?$r}!3~W7T-D`i zp~|MYl=-dRt!1?=oAEI!gbrx*q7cnyzp)e(EZE?ecZn+|$A}X0gv$2v|6GU6Qd_fF z9>%fG!Q}zy>1}jouVUTF4x20d6507tKv%qj`ylZe35HFU0uqKQ?lf(?AH(-Mssz(e zE98>`9jGFaUObYf8%1la|8BvsfCm@;bR00-O}i*p`44>XDPjii_=ma_!nSS7kfHuQ z^+*Q=|8N<=_1TG$jY|Xo≷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 LKw7)v=&z(oq*}bX literal 0 HcmV?d00001 diff --git a/MikroNUC/20260430/20260430210001-Config.rsc b/MikroNUC/20260430/20260430210001-Config.rsc new file mode 100644 index 0000000..3aa131a --- /dev/null +++ b/MikroNUC/20260430/20260430210001-Config.rsc @@ -0,0 +1,4176 @@ +# 2026-04-30 21: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/303/124c37a2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 19:50:03 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 15]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=mod/AM-TG-Notifications owner=\ + mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "#!rsc by Vados\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false\r\ + \n:local scriptVersion \"26.02.12\"\r\ + \n\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ + matic-backup-and-update\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \$PublicIpAddress\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n\\\ + n\" . \$mailBodyCopyright);\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n# :local Char \"\";\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set \$PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \"/n\" \ + \"\" ];\r\ + \n#}\r\ + \n :set \$PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\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/20260430210001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430210001-Diff-Config.rsc new file mode 100644 index 0000000..40ee9ce --- /dev/null +++ b/MikroNUC/history/20260430/20260430210001-Diff-Config.rsc @@ -0,0 +1,18 @@ +3982,3983d3981 +< \n:global EscapeForRegEx;\r\ +< \n:global UrlEncode;\r\ +3987c3985 +< \n# :local Char \"\";\r\ +--- +> \n :local Char \"\";\r\ +3992,3998c3990,3991 +< \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ +< n\") do={\r\ +< \n#:log warning \"N is = //n\"; \r\ +< \n# :set \$PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \"/n\" \ +< \"\" ];\r\ +< \n#}\r\ +< \n :set \$PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ +--- +> \n:set \$PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \"\\n\" \"\ +> \" ];\r\ -- 2.52.0