From 05cff7447eed2bc275b6aad853232a3f96edd0c2 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 9 Jun 2026 03:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 09 03:20:03. --- .../20260609/20260609032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260609/20260609032001-Config.rsc | 4790 +++++++++++++++++ .../20260609/20260609032001-Diff-Config.rsc | 8 + 3 files changed, 4798 insertions(+) create mode 100644 MikroNUC/20260609/20260609032001-Binary.backup create mode 100644 MikroNUC/20260609/20260609032001-Config.rsc create mode 100644 MikroNUC/history/20260609/20260609032001-Diff-Config.rsc diff --git a/MikroNUC/20260609/20260609032001-Binary.backup b/MikroNUC/20260609/20260609032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..1f6dc78494443da290aaffd4de30b5fa976656d9 GIT binary patch literal 380167 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�)E3PVOy$+nz%fHh4cS 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�zBb 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

_NQhf@yZ9!#6zg0u%j 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 z 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 literal 0 HcmV?d00001 diff --git a/MikroNUC/20260609/20260609032001-Config.rsc b/MikroNUC/20260609/20260609032001-Config.rsc new file mode 100644 index 0000000..f183ec9 --- /dev/null +++ b/MikroNUC/20260609/20260609032001-Config.rsc @@ -0,0 +1,4790 @@ +# 2026-06-09 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/679/bd93dce4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 08.06.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-06-04 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/20260609/20260609032001-Diff-Config.rsc b/MikroNUC/history/20260609/20260609032001-Diff-Config.rsc new file mode 100644 index 0000000..2b2a3cc --- /dev/null +++ b/MikroNUC/history/20260609/20260609032001-Diff-Config.rsc @@ -0,0 +1,8 @@ +843c843 +< \n:global CommitId \"main/679/bd93dce4\";\r\ +--- +> \n:global CommitId \"main/672/7cf8bc7a\";\r\ +846c846 +< r: root, in 13:30:03 08.06.2026.\";\r\ +--- +> r: root, in 14:35:04 06.06.2026.\";\r\ -- 2.52.0