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

j)A)3Sv(@iE%~kp|Un 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

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