From 5c0e6b00f5d245331a1d8529b2d9692e03e63d3c Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 1 May 2026 05:40:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 01 05:40:03. --- .../20260501/20260501054002-Binary.backup | Bin 0 -> 381992 bytes MikroNUC/20260501/20260501054002-Config.rsc | 4766 +++++++++++++++++ .../20260501/20260501054002-Diff-Config.rsc | 47 + 3 files changed, 4813 insertions(+) create mode 100644 MikroNUC/20260501/20260501054002-Binary.backup create mode 100644 MikroNUC/20260501/20260501054002-Config.rsc create mode 100644 MikroNUC/history/20260501/20260501054002-Diff-Config.rsc diff --git a/MikroNUC/20260501/20260501054002-Binary.backup b/MikroNUC/20260501/20260501054002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..537d84a5cded96e4c4065734127f330afc922e9e GIT binary patch literal 381992 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 V8A<@YrXp_(z_9a^&`0oaPQLYSc@O{q literal 0 HcmV?d00001 diff --git a/MikroNUC/20260501/20260501054002-Config.rsc b/MikroNUC/20260501/20260501054002-Config.rsc new file mode 100644 index 0000000..7e9d849 --- /dev/null +++ b/MikroNUC/20260501/20260501054002-Config.rsc @@ -0,0 +1,4766 @@ +# 2026-05-01 05:40:02 by RouterOS 7.22.1 +# system id = NmJcEM+8XAP +# +/caps-man channel +add band=2ghz-g/n extension-channel=disabled frequency=2422 name=2G-3 \ + reselect-interval=20m save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXX frequency=5660 name=5G-5660 \ + save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXXXXXX frequency=5160,5200,5280 \ + name=5G-5160-5280 reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5180 name=5G-36 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5200 name=5G-40 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5220 name=5G-44 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5240 name=5G-48 \ + reselect-interval=30m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2442 name=2G-7 \ + reselect-interval=20m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2462 name=2G-11 \ + reselect-interval=20m save-selected=yes +/interface bridge +add name=Bridge-DOC +add name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] disable-running-check=no name=ether2 +/interface veth +add address=172.18.20.6/30 container-mac-address=00:00:00:00:00:00 dhcp=no \ + gateway=172.18.20.5 gateway6="" name=docker-xray-vless-veth +add address=10.10.10.10/24 container-mac-address=5C:26:FE:05:6F:12 dhcp=no \ + gateway=10.10.10.1 gateway6="" mac-address=5C:26:FE:05:6F:11 name=veth1 +/caps-man datapath +add bridge=Bridge-LAN client-to-client-forwarding=yes local-forwarding=yes \ + name=xs-DataPath +add bridge=Bridge-LAN client-to-client-forwarding=yes local-forwarding=yes \ + name=DataPath +/caps-man security +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=xs-Sec +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=WPA2 +/caps-man configuration +add channel.band=2ghz-b/g/n country=no_country_set datapath=xs-DataPath mode=\ + ap name=xs-2G rx-chains=0,1,2,3 security=xs-Sec ssid=vados tx-chains=\ + 0,1,2,3 +add channel.band=5ghz-a/n/ac country=no_country_set datapath=xs-DataPath \ + installation=any mode=ap name=xs-5G rx-chains=0,1,2,3 security=xs-Sec \ + ssid=vados5g tx-chains=0,1,2,3 +add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ + XX .frequency=2422,2442,2462 .reselect-interval=20m country=belarus \ + datapath=DataPath datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes hw-protection-mode=rts-cts installation=any name=2G \ + rx-chains=0,1,2,3 security=WPA2 ssid=vados tx-chains=0,1,2,3 +add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ + XXXX .frequency=5180,5200,5220,5240,5260 .reselect-interval=20m \ + .skip-dfs-channels=yes country=belarus datapath=DataPath \ + datapath.client-to-client-forwarding=yes .local-forwarding=yes \ + hw-protection-mode=rts-cts installation=any name=5G security=WPA2 ssid=\ + vados5g +/disk +add slot=tmpfs tmpfs-max-size=715827882 type=tmpfs +/interface list +add include=dynamic,static name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroMIC +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=P1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +/ip pool +add name=dhcp ranges=10.30.30.150-10.30.30.200 +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=test owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#:local ScriptName [ :jobname ];\r\ + \n:local expSrc;\r\ + \n:local FileName;\r\ + \n:local FilePath;\r\ + \n:local DirPath \"tmpfs/\";\r\ + \n:global WaitForFile;\r\ + \n:global IfThenElse;\r\ + \n\r\ + \n:foreach Script in=([ /system/script find where name~\"Amster-GlobalConf\ + *\" ]) do={\r\ + \n:local ScriptVal [ /system/script/get \$Script ];\r\ + \n\r\ + \n:local expName [ (\$ScriptVal->\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix \"\";\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\r\ + \n \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/348/e201dbb4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 04:50:02 01.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :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 FwAddrListsUrl (\$GlobalScriptsUrl . \"fw-addr-lists.d/\");\r\ + \n\r\ + \n :local FwAddrLists {\r\ + \n \"allow\"={\r\ + \n { url=(\$FwAddrListsUrl . \"allow\");\r\ + \n cert=\"Root YE\"; timeout=1w };\r\ + \n };\r\ + \n \"block\"={\r\ + \n { url=(\$FwAddrListsUrl . \"block\");\r\ + \n cert=\"Root YE\" };\r\ + \n# { url=\"https://raw.githubusercontent.com/stamparm/ipsum/refs/hea\ + ds/master/levels/4.txt\";\r\ + \n# # higher level (decrease the numerical value) for more addresses, \ + and vice versa\r\ + \n# cert=\"ISRG Root X1\" };\r\ + \n# { url=\"https://www.dshield.org/block.txt\"; cidr=\"/24\";\r\ + \n# cert=\"GTS Root R4\" };\r\ + \n# { url=\"https://lists.blocklist.de/lists/strongips.txt\";\r\ + \n# cert=\"GTS Root R4\" };\r\ + \n# { url=\"https://www.spamhaus.org/drop/drop_v4.json\";\r\ + \n# cert=\"GTS Root R4\" };\r\ + \n# { url=\"https://www.spamhaus.org/drop/drop_v6.json\";\r\ + \n# cert=\"GTS Root R4\" };\r\ + \n };\r\ + \n \"mikrotik\"={\r\ + \n { url=(\$FwAddrListsUrl . \"mikrotik\");\r\ + \n cert=\"Root YE\"; timeout=1w };\r\ + \n };\r\ + \n \"FuckRKN\"={\r\ + \n { url=(\$FwAddrListsUrl . \"FuckRKN\");\r\ + \n cert=\"Root YE\"; timeout=1w };\r\ + \n };\r\ + \n };\r\ + \n :local FwAddrListTimeOut 1d;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHuge;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n\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 :if ([ :len [ /log/find where topics=({\"script\"; \"warning\"}) \\\r\ + \n message=(\"\\\$LogPrint: The message is already in log, scripting \ + subsystem may have crashed before!\") ] ] > 0) do={\r\ + \n :log warning (\$ScriptName . \" Scripting subsystem may have crashed\ + , possibly caused by us. Delaying!\");\r\ + \n :delay 5m;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n\r\ + \n :foreach FwListName,FwList in=\$FwAddrLists do={\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\r\ + \n :foreach List in=\$FwList do={\r\ + \n :local CheckCertificate false;\r\ + \n :local Data false;\r\ + \n :local TimeOut [ \$EitherOr [ :totime (\$List->\"timeout\") ] \$Fw\ + AddrListTimeOut ];\r\ + \n\r\ + \n :if ([ :len (\$List->\"cert\") ] > 0) do={\r\ + \n :set CheckCertificate true;\r\ + \n :if ([ \$CertificateAvailable (\$List->\"cert\") \"fetch\" ] = f\ + alse) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certif\ + icate (\" . \$FwListName . \\\r\ + \n \" / \" . \$List->\"url\" . \") failed, trying anyway.\");\ + \r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHuge \$ScriptName (\$List->\"url\")\ + \_\$CheckCertificate ] ];\r\ + \n :if (\$Data = false) do={\r\ + \n :if (\$I < 5) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Failed downloading for li\ + st '\" . \$FwListName . \\\r\ + \n \"', \" . \$I . \". try from: \" . \$List->\"url\");\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\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 \$LogPrint warning \$ScriptName (\"Failed downloading for list '\ + \" . \$FwListName . \\\r\ + \n \"' from: \" . \$List->\"url\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Downloaded \" . [ \$HumanReadab\ + leNum [ :len \$Data ] 1024 ] . \\\r\ + \n \"B for list '\" . \$FwListName . \"' from: \" . \$List->\"u\ + rl\");\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Li\ + ne ] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"\ + cidr\") ];\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 \$C\ + IDR ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :error true;\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 :error true;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\")\ + \_do={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :error true;\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=\$FwListName 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 debug (\$ScriptName . \" Renewing IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" in list '\" . \$FwListName . \"' 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 debug (\$ScriptName . \" Removing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" from list '\" . \$FwListName . \".\");\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=\$FwListName 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 debug (\$ScriptName . \" Renewing IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" in list '\" . \$FwListName . \"' 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 debug (\$ScriptName . \" Removing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" from list '\" . \$FwListName .\".\");\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 debug (\$ScriptName . \" Handling branch: \" . \$BranchName);\ + \r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log debug (\$ScriptName . \" Adding IPv4 address \" . \$Address\ + \_. \\\r\ + \n \" to list '\" . \$FwListName . \"' with \" . \$Timeout . \"\ + .\");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$FwListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed to add IPv4 address \ + \" . \$Address . \\\r\ + \n \" to list '\" . \$FwListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log debug (\$ScriptName . \" Handling branch: \" . \$BranchName);\ + \r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log debug (\$ScriptName . \" Adding IPv6 address \" . \$Address\ + \_. \\\r\ + \n \" to list '\" . \$FwListName . \"' with \" . \$Timeout . \"\ + .\");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$FwListName comment=\$Li\ + stComment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed to add IPv6 address \ + \" . \$Address . \\\r\ + \n \" to list '\" . \$FwListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n \$LogPrint info \$ScriptName (\"list: \" . \$FwListName . \\\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 +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260501/20260501054002-Diff-Config.rsc b/MikroNUC/history/20260501/20260501054002-Diff-Config.rsc new file mode 100644 index 0000000..f4ade12 --- /dev/null +++ b/MikroNUC/history/20260501/20260501054002-Diff-Config.rsc @@ -0,0 +1,47 @@ +817c817 +< \n:global CommitId \"main/348/e201dbb4\";\r\ +--- +> \n:global CommitId \"main/347/81bfb1ca\";\r\ +820c820 +< r: root, in 04:50:02 01.05.2026.\";\r\ +--- +> r: root, in 04:45:02 01.05.2026.\";\r\ +4298,4332c4298,4299 +< \n :global GlobalScriptsUrl;\r\ +< \n :local FwAddrListsUrl (\$GlobalScriptsUrl . \"fw-addr-lists.d/\");\r\ +< \n\r\ +< \n :local FwAddrLists {\r\ +< \n \"allow\"={\r\ +< \n { url=(\$FwAddrListsUrl . \"allow\");\r\ +< \n cert=\"Root YE\"; timeout=1w };\r\ +< \n };\r\ +< \n \"block\"={\r\ +< \n { url=(\$FwAddrListsUrl . \"block\");\r\ +< \n cert=\"Root YE\" };\r\ +< \n# { url=\"https://raw.githubusercontent.com/stamparm/ipsum/refs/hea\ +< ds/master/levels/4.txt\";\r\ +< \n# # higher level (decrease the numerical value) for more addresses, \ +< and vice versa\r\ +< \n# cert=\"ISRG Root X1\" };\r\ +< \n# { url=\"https://www.dshield.org/block.txt\"; cidr=\"/24\";\r\ +< \n# cert=\"GTS Root R4\" };\r\ +< \n# { url=\"https://lists.blocklist.de/lists/strongips.txt\";\r\ +< \n# cert=\"GTS Root R4\" };\r\ +< \n# { url=\"https://www.spamhaus.org/drop/drop_v4.json\";\r\ +< \n# cert=\"GTS Root R4\" };\r\ +< \n# { url=\"https://www.spamhaus.org/drop/drop_v6.json\";\r\ +< \n# cert=\"GTS Root R4\" };\r\ +< \n };\r\ +< \n \"mikrotik\"={\r\ +< \n { url=(\$FwAddrListsUrl . \"mikrotik\");\r\ +< \n cert=\"Root YE\"; timeout=1w };\r\ +< \n };\r\ +< \n \"FuckRKN\"={\r\ +< \n { url=(\$FwAddrListsUrl . \"FuckRKN\");\r\ +< \n cert=\"Root YE\"; timeout=1w };\r\ +< \n };\r\ +< \n };\r\ +< \n :local FwAddrListTimeOut 1d;\r\ +--- +> \n :global FwAddrLists;\r\ +> \n :global FwAddrListTimeOut;\r\ -- 2.52.0

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