From 461661d0b4dc68317478abfc526edc62bf35d607 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 03:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 01 03:20:03. --- .../20260601/20260601032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260601/20260601032001-Config.rsc | 4790 +++++++++++++++++ .../20260601/20260601032001-Diff-Config.rsc | 8 + 3 files changed, 4798 insertions(+) create mode 100644 MikroNUC/20260601/20260601032001-Binary.backup create mode 100644 MikroNUC/20260601/20260601032001-Config.rsc create mode 100644 MikroNUC/history/20260601/20260601032001-Diff-Config.rsc diff --git a/MikroNUC/20260601/20260601032001-Binary.backup b/MikroNUC/20260601/20260601032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..17c33eb22432e6d18507896dcba148f9b0582a33 GIT binary patch literal 380167 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

Noa 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 z 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 z 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

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