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

QC+TER&bP2P& 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

xoPaX8PQENuEF^o}jE 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%0Agh(l}h-&|^ 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�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�na2Gws{=9Hi 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

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