Compare commits
No commits in common. "main" and "routeros-7.21beta2-2" have entirely different histories.
main
...
routeros-7
|
|
@ -4,7 +4,7 @@ Installing from branches
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Certificate name from browser
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
@ -61,7 +61,7 @@ Import a certificate by CommonName
|
||||||
Running the function `$CertificateAvailable` with that name as parameter
|
Running the function `$CertificateAvailable` with that name as parameter
|
||||||
makes sure the certificate is available in the device's store:
|
makes sure the certificate is available in the device's store:
|
||||||
|
|
||||||
$CertificateAvailable "ISRG Root X2" "fetch";
|
$CertificateAvailable "ISRG Root X2";
|
||||||
|
|
||||||
If the certificate is actually available already nothing happens, and there
|
If the certificate is actually available already nothing happens, and there
|
||||||
is no output. Otherwise the certificate is downloaded and imported.
|
is no output. Otherwise the certificate is downloaded and imported.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Past Contributions
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
@ -56,7 +56,6 @@ Add yourself to the list,
|
||||||
* Peter Ponzel
|
* Peter Ponzel
|
||||||
* Reiner Vehrenkamp
|
* Reiner Vehrenkamp
|
||||||
* Richard Österreicher
|
* Richard Österreicher
|
||||||
* Ruben Navarro Huedo
|
|
||||||
* Simon Hitzemann
|
* Simon Hitzemann
|
||||||
* Sunny Chu (@sunnychuchu)
|
* Sunny Chu (@sunnychuchu)
|
||||||
* Ulrich Wessendorf
|
* Ulrich Wessendorf
|
||||||
|
|
|
||||||
2
DEBUG.md
|
|
@ -4,7 +4,7 @@ Debug output and logs
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Initial commands
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
@ -17,16 +17,13 @@ Initial commands
|
||||||
Run the complete base installation:
|
Run the complete base installation:
|
||||||
|
|
||||||
{
|
{
|
||||||
:local BaseUrl "https://rsc.eworm.de/main/";
|
:local BaseUrl "https://git.eworm.de/cgit/routeros-scripts/plain/";
|
||||||
:local CertCommonName "Root YE";
|
:local CertCommonName "ISRG Root X2";
|
||||||
:local CertFileName "Root-YE.pem";
|
:local CertFileName "ISRG-Root-X2.pem";
|
||||||
:local CertFingerprint "e14ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666";
|
:local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470";
|
||||||
|
|
||||||
:local CertSettings [ /certificate/settings/get ];
|
:if (!(([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \
|
||||||
:if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \
|
[[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={
|
||||||
($CertSettings->"builtin-trust-store") ~ "fetch" || \
|
|
||||||
($CertSettings->"builtin-trust-store") = "all") && \
|
|
||||||
[ :len [ /certificate/builtin/find where common-name=$CertCommonName ] ] > 0)) do={
|
|
||||||
:put "Importing certificate...";
|
:put "Importing certificate...";
|
||||||
/tool/fetch ($BaseUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value;
|
/tool/fetch ($BaseUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value;
|
||||||
:delay 1s;
|
:delay 1s;
|
||||||
|
|
@ -45,6 +42,9 @@ Run the complete base installation:
|
||||||
};
|
};
|
||||||
:put "Loading configuration and functions...";
|
:put "Loading configuration and functions...";
|
||||||
/system/script { run global-config; run global-functions; };
|
/system/script { run global-config; run global-functions; };
|
||||||
|
:put "Scheduling to load configuration and functions...";
|
||||||
|
/system/scheduler/remove [ find where name="global-scripts" ];
|
||||||
|
/system/scheduler/add name="global-scripts" start-time=startup on-event="/system/script { run global-config; run global-functions; }";
|
||||||
:if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] > 0) do={
|
:if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] > 0) do={
|
||||||
:put "Renaming certificate by its common-name...";
|
:put "Renaming certificate by its common-name...";
|
||||||
:global CertificateNameByCN;
|
:global CertificateNameByCN;
|
||||||
|
|
|
||||||
55
Makefile
|
|
@ -2,45 +2,38 @@
|
||||||
# template scripts -> final scripts
|
# template scripts -> final scripts
|
||||||
# markdown files -> html files
|
# markdown files -> html files
|
||||||
|
|
||||||
ALL_RSC := $(wildcard *.rsc */*.rsc)
|
CAPSMAN = $(wildcard *.capsman.rsc)
|
||||||
GEN_RSC := $(wildcard *.capsman.rsc *.local.rsc *.wifi.rsc)
|
LOCAL = $(wildcard *.local.rsc)
|
||||||
|
WIFI = $(wildcard *.wifi.rsc)
|
||||||
|
|
||||||
MARKDOWN := $(wildcard *.md doc/*.md doc/mod/*.md)
|
MARKDOWN = $(wildcard *.md doc/*.md doc/mod/*.md)
|
||||||
HTML := $(MARKDOWN:.md=.html)
|
HTML = $(MARKDOWN:.md=.html)
|
||||||
|
|
||||||
DATE ?= $(shell date --rfc-email)
|
all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json
|
||||||
VERSION ?= $(shell git symbolic-ref --short HEAD 2>/dev/null)/$(shell git rev-list --count HEAD 2>/dev/null)/$(shell git rev-parse --short=8 HEAD 2>/dev/null)
|
|
||||||
export DATE VERSION
|
|
||||||
|
|
||||||
.PHONY: all checksums commitinfo docs rsc clean
|
%.html: %.md contrib/html.sh contrib/html.sh.d/head.html
|
||||||
|
|
||||||
all: checksums docs rsc
|
|
||||||
|
|
||||||
checksums: checksums.json
|
|
||||||
|
|
||||||
checksums.json: contrib/checksums.sh $(ALL_RSC)
|
|
||||||
contrib/checksums.sh > $@
|
|
||||||
|
|
||||||
commitinfo: global-functions.rsc
|
|
||||||
contrib/commitinfo.sh $< > $<~
|
|
||||||
mv $<~ $<
|
|
||||||
|
|
||||||
docs: $(HTML)
|
|
||||||
|
|
||||||
%.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh.d/foot.html
|
|
||||||
contrib/html.sh $< > $@
|
contrib/html.sh $< > $@
|
||||||
|
|
||||||
rsc: $(GEN_RSC)
|
%.capsman.rsc: %.template.rsc Makefile
|
||||||
|
sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \
|
||||||
|
-e '/^# NOT \/caps-man\/ #$$/,/^# NOT \/caps-man\/ #$$/d' \
|
||||||
|
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
||||||
|
< $< > $@
|
||||||
|
|
||||||
%.capsman.rsc: %.template.rsc contrib/template-capsman.sh
|
%.local.rsc: %.template.rsc Makefile
|
||||||
contrib/template-capsman.sh $< > $@
|
sed -e '/\/caps-man\//d' -e '/\/interface\/wifi\//d' -e 's|%TEMPL%|.local|' \
|
||||||
|
-e '/^# NOT \/interface\/wireless\/ #$$/,/^# NOT \/interface\/wireless\/ #$$/d' \
|
||||||
|
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
||||||
|
< $< > $@
|
||||||
|
|
||||||
%.local.rsc: %.template.rsc contrib/template-local.sh
|
%.wifi.rsc: %.template.rsc Makefile
|
||||||
contrib/template-local.sh $< > $@
|
sed -e '/\/caps-man\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.wifi|' \
|
||||||
|
-e '/^# NOT \/interface\/wifi\/ #$$/,/^# NOT \/interface\/wifi\/ #$$/d' \
|
||||||
|
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
||||||
|
< $< > $@
|
||||||
|
|
||||||
%.wifi.rsc: %.template.rsc contrib/template-wifi.sh
|
checksums.json: contrib/checksums.sh *.rsc */*.rsc
|
||||||
contrib/template-wifi.sh $< > $@
|
contrib/checksums.sh
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(HTML) checksums.json
|
rm -f $(HTML) checksums.json
|
||||||
make -C contrib/ clean
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
README.d/05-run-and-schedule-scripts.avif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 207 B |
122
README.md
|
|
@ -4,12 +4,10 @@ RouterOS Scripts
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
**a collection of scripts for MikroTik RouterOS**
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
[RouterOS ↗️](https://mikrotik.com/software) is the operating system developed
|
[RouterOS ↗️](https://mikrotik.com/software) is the operating system developed
|
||||||
|
|
@ -27,42 +25,21 @@ Requirements
|
||||||
### Software (RouterOS)
|
### Software (RouterOS)
|
||||||
|
|
||||||
Latest version of the scripts require recent RouterOS to function properly.
|
Latest version of the scripts require recent RouterOS to function properly.
|
||||||
Make sure to install latest updates before you begin. This is supposed to
|
Make sure to install latest updates before you begin. If new functionality
|
||||||
work flawlessly with these channels:
|
or a breaking change in RouterOS `7.n` is used in my scripts I push my
|
||||||
|
change some time after `7.(n+1)` was released. At any time you should have
|
||||||
|
at least two minor and their bugfix releases to choose from.
|
||||||
|
|
||||||
* `stable` - the latest version considered stable for daily use, including
|
Specific scripts may require even newer RouterOS version.
|
||||||
new features
|
|
||||||
* `long-term` - a version considered rock-solid, usually one minor version
|
|
||||||
behind `stable` (`7.(n-1)`)
|
|
||||||
|
|
||||||
New functionality or breaking changes in RouterOS are adopted fairly quick.
|
|
||||||
These changes are pushed for general availability once a version of
|
|
||||||
RouterOS supporting this had been released to the `long-term` channel a
|
|
||||||
reasonable time ago.
|
|
||||||
|
|
||||||
At any time you should have at least two minor versions and their bugfix
|
|
||||||
releases to choose from. Often way older versions of RouterOS work just
|
|
||||||
fine.
|
|
||||||
|
|
||||||
On the other hand in seldom cases and for good reasons *specific* scripts
|
|
||||||
may require an even newer RouterOS version, so only `stable` is supported
|
|
||||||
temporarily.
|
|
||||||
|
|
||||||
> 💡️ **Hint**: If in doubt have a look at the badge at the top of each
|
|
||||||
> page showing the minimum version required:
|
|
||||||
> 
|
|
||||||
|
|
||||||
> ℹ️ **Info**: The `main` branch is now RouterOS v7 only. If you are still
|
> ℹ️ **Info**: The `main` branch is now RouterOS v7 only. If you are still
|
||||||
> running RouterOS v6 switch to `routeros-v6` branch!
|
> running RouterOS v6 switch to `routeros-v6` branch!
|
||||||
|
|
||||||
#### Prerequisite configuration
|
Starting with RouterOS 7.17 the
|
||||||
|
|
||||||
The
|
|
||||||
[device-mode ↗️](https://help.mikrotik.com/docs/spaces/ROS/pages/93749258/Device-mode)
|
[device-mode ↗️](https://help.mikrotik.com/docs/spaces/ROS/pages/93749258/Device-mode)
|
||||||
is a mechanism to lock down a device for security reasons, it gives
|
has been extended to give more fine-grained control over what features are
|
||||||
fine-grained control over what features are available. You need to enable
|
available. You need to enable `scheduler` and `fetch` at least, specific
|
||||||
`scheduler` and `fetch` at least, specific scripts may require additional
|
scripts may require additional features.
|
||||||
features.
|
|
||||||
|
|
||||||
### Hardware
|
### Hardware
|
||||||
|
|
||||||
|
|
@ -78,18 +55,15 @@ Initial setup
|
||||||
### Get me ready!
|
### Get me ready!
|
||||||
|
|
||||||
If you know how things work just copy and paste the
|
If you know how things work just copy and paste the
|
||||||
[initial commands](INITIAL-COMMANDS.md). These also support fixing an
|
[initial commands](INITIAL-COMMANDS.md). Remember to edit and rerun
|
||||||
existing but broken installation. Remember to edit and rerun
|
|
||||||
`global-config-overlay`!
|
`global-config-overlay`!
|
||||||
|
First time users should take the long way below.
|
||||||
> 💡️ **Hint**: First time users should take
|
|
||||||
> [the long way in detail](#the-long-way-in-detail) below.
|
|
||||||
|
|
||||||
### Live presentation
|
### Live presentation
|
||||||
|
|
||||||
Want to see it in action? I've had a presentation [Repository based
|
Want to see it in action? I've had a presentation [Repository based
|
||||||
RouterOS script distribution ↗️](https://www.youtube.com/watch?v=B9neG3oAhcY)
|
RouterOS script distribution ↗️](https://www.youtube.com/watch?v=B9neG3oAhcY)
|
||||||
including demonstration recorded live at [MUM Europe
|
including demonstation recorded live at [MUM Europe
|
||||||
2019 ↗️](https://mum.mikrotik.com/2019/EU/) in Vienna.
|
2019 ↗️](https://mum.mikrotik.com/2019/EU/) in Vienna.
|
||||||
|
|
||||||
> ⚠️ **Warning**: Some details changed. So see the presentation, then follow
|
> ⚠️ **Warning**: Some details changed. So see the presentation, then follow
|
||||||
|
|
@ -97,47 +71,32 @@ including demonstration recorded live at [MUM Europe
|
||||||
|
|
||||||
### The long way in detail
|
### The long way in detail
|
||||||
|
|
||||||
The update script does server certificate verification, so first step is
|
The update script does server certificate verification, so first step is to
|
||||||
to establish trust.
|
download the certificates.
|
||||||
|
|
||||||
#### Builtin trust store
|
> 💡️ **Hint**: RouterOS 7.19 comes with a builtin certificate store. You
|
||||||
|
> can skip the steps regarding certificate download and import and jump
|
||||||
RouterOS comes with a builtin trust store with several CA certificates.
|
> to [installation of scripts](#installation-of-scripts) if you set the
|
||||||
If you intend **not** to trust this store jump to
|
> trust for these builtin trust anchors:
|
||||||
[download and import certificate](#download-and-import-certificate) now.
|
|
||||||
|
|
||||||
Select the `fetch` command to trust these builtin certificates at
|
|
||||||
least, but make sure not to drop other targets:
|
|
||||||
|
|
||||||
/certificate/settings/set builtin-trust-store=fetch;
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
> 💡️ **Hint**: With RouterOS 7.20.x and before the functionality was
|
|
||||||
> different. Set the trust for the builtin trust anchors:
|
|
||||||
> `/certificate/settings/set builtin-trust-anchors=trusted;`
|
> `/certificate/settings/set builtin-trust-anchors=trusted;`
|
||||||
|
|
||||||
You can skip the steps regarding *download and import certificate* and
|
|
||||||
jump to [installation of scripts](#installation-of-scripts) now.
|
|
||||||
|
|
||||||
#### Download and import certificate
|
|
||||||
|
|
||||||
If you intend to download the scripts from a
|
If you intend to download the scripts from a
|
||||||
different location (for example from github.com) install the corresponding
|
different location (for example from github.com) install the corresponding
|
||||||
certificate chain.
|
certificate chain.
|
||||||
|
|
||||||
/tool/fetch "https://rsc.eworm.de/main/certs/Root-YE.pem" dst-path="root-ye.pem";
|
/tool/fetch "https://git.eworm.de/cgit/routeros-scripts/plain/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem";
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
> ℹ️ **Info**: Note that the command above does *not* verify server
|
Note that the commands above do *not* verify server certificate, so if you
|
||||||
> certificate, so if you want to be safe download with your workstations's
|
want to be safe download with your workstations's browser and transfer the
|
||||||
> browser from CA's website and transfer the file to your MikroTik device:
|
file to your MikroTik device.
|
||||||
> *Let's Encrypt* / *ISRG* [Root YE ↗️](https://letsencrypt.org/certs/gen-y/root-ye.pem)
|
|
||||||
|
* [ISRG Root X2 ↗️](https://letsencrypt.org/certs/isrg-root-x2.pem)
|
||||||
|
|
||||||
Then we import the certificate.
|
Then we import the certificate.
|
||||||
|
|
||||||
/certificate/import file-name="root-ye.pem" passphrase="";
|
/certificate/import file-name="isrg-root-x2.pem" passphrase="";
|
||||||
|
|
||||||
Do not worry that the command is not shown - that happens because it contains
|
Do not worry that the command is not shown - that happens because it contains
|
||||||
a sensitive property, the passphrase.
|
a sensitive property, the passphrase.
|
||||||
|
|
@ -145,11 +104,11 @@ a sensitive property, the passphrase.
|
||||||

|

|
||||||
|
|
||||||
For basic verification we rename the certificate and print it by
|
For basic verification we rename the certificate and print it by
|
||||||
fingerprint. Make sure exactly this one certificate ("*Root-YE*")
|
fingerprint. Make sure exactly this one certificate ("*ISRG-Root-X2*")
|
||||||
is shown.
|
is shown.
|
||||||
|
|
||||||
/certificate/set name="Root-YE" [ find where common-name="Root YE" ];
|
/certificate/set name="ISRG-Root-X2" [ find where common-name="ISRG Root X2" ];
|
||||||
/certificate/print proplist=name,fingerprint where fingerprint="e14ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666";
|
/certificate/print proplist=name,fingerprint where fingerprint="69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470";
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
@ -163,16 +122,16 @@ date and time is set correctly!
|
||||||
|
|
||||||
Now let's download the main scripts and add them in configuration on the fly.
|
Now let's download the main scripts and add them in configuration on the fly.
|
||||||
|
|
||||||
:foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://rsc.eworm.de/main/" . $Script . ".rsc") output=user as-value ]->"data"); };
|
:foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://git.eworm.de/cgit/routeros-scripts/plain/" . $Script . ".rsc") output=user as-value]->"data"); };
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
And finally run configuration and functions. This will also add the
|
And finally load configuration and functions and add the scheduler.
|
||||||
scheduler for loading at system startup automatically.
|
|
||||||
|
|
||||||
/system/script { run global-config; run global-functions; };
|
/system/script { run global-config; run global-functions; };
|
||||||
|
/system/scheduler/add name="global-scripts" start-time=startup on-event="/system/script { run global-config; run global-functions; }";
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
> 💡️ **Hint**: You see complaints regarding syntax errors? Most likely the
|
> 💡️ **Hint**: You see complaints regarding syntax errors? Most likely the
|
||||||
> RouterOS on your device is too old. Check for updates!
|
> RouterOS on your device is too old. Check for updates!
|
||||||
|
|
@ -260,7 +219,7 @@ cleanup add a scheduler entry.
|
||||||
|
|
||||||
$ScriptInstallUpdate dhcp-to-dns,lease-script;
|
$ScriptInstallUpdate dhcp-to-dns,lease-script;
|
||||||
/ip/dhcp-server/set lease-script=lease-script [ find ];
|
/ip/dhcp-server/set lease-script=lease-script [ find ];
|
||||||
/system/scheduler/add name="dhcp-to-dns" interval=5m start-time=startup on-event="/system/script/run dhcp-to-dns;";
|
/system/scheduler/add name="dhcp-to-dns" interval=5m on-event="/system/script/run dhcp-to-dns;";
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
@ -442,15 +401,14 @@ immediately remove the link in question.
|
||||||
Upstream
|
Upstream
|
||||||
--------
|
--------
|
||||||
|
|
||||||
[rsc.eworm.de](https://rsc.eworm.de/)
|
[](https://rsc.eworm.de/)
|
||||||
|
|
||||||
[](https://rsc.eworm.de/)
|
URL:
|
||||||
|
[GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts)
|
||||||
|
|
||||||
### Code hosting
|
Mirror:
|
||||||
|
[eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/)
|
||||||
* [git.eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/)
|
[GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts)
|
||||||
* [GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts)
|
|
||||||
* [GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
[⬆️ Go back to top](#top)
|
[⬆️ Go back to top](#top)
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: accesslist-duplicates.capsman
|
# RouterOS script: accesslist-duplicates.capsman
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
:local ExitOK false;
|
||||||
:onerror Err {
|
:onerror Err {
|
||||||
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
||||||
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
||||||
|
|
@ -32,5 +33,5 @@
|
||||||
:set ($Seen->$Mac) 1;
|
:set ($Seen->$Mac) 1;
|
||||||
}
|
}
|
||||||
} do={
|
} do={
|
||||||
:global ExitOnError; $ExitOnError [ :jobname ] $Err;
|
:global ExitError; $ExitError $ExitOK [ :jobname ] $Err;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: accesslist-duplicates.local
|
# RouterOS script: accesslist-duplicates.local
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
:local ExitOK false;
|
||||||
:onerror Err {
|
:onerror Err {
|
||||||
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
||||||
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
||||||
|
|
@ -32,5 +33,5 @@
|
||||||
:set ($Seen->$Mac) 1;
|
:set ($Seen->$Mac) 1;
|
||||||
}
|
}
|
||||||
} do={
|
} do={
|
||||||
:global ExitOnError; $ExitOnError [ :jobname ] $Err;
|
:global ExitError; $ExitError $ExitOK [ :jobname ] $Err;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: accesslist-duplicates%TEMPL%
|
# RouterOS script: accesslist-duplicates%TEMPL%
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
# !! This is just a template to generate the real script!
|
# !! This is just a template to generate the real script!
|
||||||
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
|
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
|
||||||
|
|
||||||
|
:local ExitOK false;
|
||||||
:onerror Err {
|
:onerror Err {
|
||||||
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
||||||
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
||||||
|
|
@ -41,5 +42,5 @@
|
||||||
:set ($Seen->$Mac) 1;
|
:set ($Seen->$Mac) 1;
|
||||||
}
|
}
|
||||||
} do={
|
} do={
|
||||||
:global ExitOnError; $ExitOnError [ :jobname ] $Err;
|
:global ExitError; $ExitError $ExitOK [ :jobname ] $Err;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: accesslist-duplicates.wifi
|
# RouterOS script: accesslist-duplicates.wifi
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
# https://rsc.eworm.de/doc/accesslist-duplicates.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
:local ExitOK false;
|
||||||
:onerror Err {
|
:onerror Err {
|
||||||
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
:global GlobalConfigReady; :global GlobalFunctionsReady;
|
||||||
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
|
||||||
|
|
@ -32,5 +33,5 @@
|
||||||
:set ($Seen->$Mac) 1;
|
:set ($Seen->$Mac) 1;
|
||||||
}
|
}
|
||||||
} do={
|
} do={
|
||||||
:global ExitOnError; $ExitOnError [ :jobname ] $Err;
|
:global ExitError; $ExitError $ExitOK [ :jobname ] $Err;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: backup-cloud
|
# RouterOS script: backup-cloud
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: backup-script, order=40
|
# provides: backup-script, order=40
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# upload backup to MikroTik cloud
|
# upload backup to MikroTik cloud
|
||||||
# https://rsc.eworm.de/doc/backup-cloud.md
|
# https://rsc.eworm.de/doc/backup-cloud.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: backup-email
|
# RouterOS script: backup-email
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: backup-script, order=20
|
# provides: backup-script, order=20
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# create and email backup and config file
|
# create and email backup and config file
|
||||||
# https://rsc.eworm.de/doc/backup-email.md
|
# https://rsc.eworm.de/doc/backup-email.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: backup-partition
|
# RouterOS script: backup-partition
|
||||||
# Copyright (c) 2022-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2022-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: backup-script, order=70
|
# provides: backup-script, order=70
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
# requires device-mode, scheduler
|
# requires device-mode, scheduler
|
||||||
#
|
#
|
||||||
# save configuration to fallback partition
|
# save configuration to fallback partition
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: backup-upload
|
# RouterOS script: backup-upload
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: backup-script, order=50
|
# provides: backup-script, order=50
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
# requires device-mode, fetch
|
# requires device-mode, fetch
|
||||||
#
|
#
|
||||||
# create and upload backup and config file
|
# create and upload backup and config file
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: capsman-download-packages.capsman
|
# RouterOS script: capsman-download-packages.capsman
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# download and cleanup packages for CAP installation from CAPsMAN
|
# download and cleanup packages for CAP installation from CAPsMAN
|
||||||
# https://rsc.eworm.de/doc/capsman-download-packages.md
|
# https://rsc.eworm.de/doc/capsman-download-packages.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: capsman-download-packages%TEMPL%
|
# RouterOS script: capsman-download-packages%TEMPL%
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# download and cleanup packages for CAP installation from CAPsMAN
|
# download and cleanup packages for CAP installation from CAPsMAN
|
||||||
# https://rsc.eworm.de/doc/capsman-download-packages.md
|
# https://rsc.eworm.de/doc/capsman-download-packages.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: capsman-download-packages.wifi
|
# RouterOS script: capsman-download-packages.wifi
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# download and cleanup packages for CAP installation from CAPsMAN
|
# download and cleanup packages for CAP installation from CAPsMAN
|
||||||
# https://rsc.eworm.de/doc/capsman-download-packages.md
|
# https://rsc.eworm.de/doc/capsman-download-packages.md
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: capsman-rolling-upgrade.capsman
|
# RouterOS script: capsman-rolling-upgrade.capsman
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: capsman-rolling-upgrade.capsman
|
# provides: capsman-rolling-upgrade.capsman
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# upgrade CAPs one after another
|
# upgrade CAPs one after another
|
||||||
# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
|
# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: capsman-rolling-upgrade%TEMPL%
|
# RouterOS script: capsman-rolling-upgrade%TEMPL%
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: capsman-rolling-upgrade%TEMPL%
|
# provides: capsman-rolling-upgrade%TEMPL%
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# upgrade CAPs one after another
|
# upgrade CAPs one after another
|
||||||
# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
|
# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: capsman-rolling-upgrade.wifi
|
# RouterOS script: capsman-rolling-upgrade.wifi
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: capsman-rolling-upgrade.wifi
|
# provides: capsman-rolling-upgrade.wifi
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# upgrade CAPs one after another
|
# upgrade CAPs one after another
|
||||||
# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
|
# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: certificate-renew-issued
|
# RouterOS script: certificate-renew-issued
|
||||||
# Copyright (c) 2019-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# renew locally issued certificates
|
# renew locally issued certificates
|
||||||
# https://rsc.eworm.de/doc/certificate-renew-issued.md
|
# https://rsc.eworm.de/doc/certificate-renew-issued.md
|
||||||
|
|
|
||||||
29
certs/Certum-Trusted-Network-CA.pem
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority
|
||||||
|
# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority
|
||||||
|
# Label: "Certum Trusted Network CA"
|
||||||
|
# Serial: 279744
|
||||||
|
# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78
|
||||||
|
# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e
|
||||||
|
# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
|
||||||
|
MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
|
||||||
|
ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
|
||||||
|
cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
|
||||||
|
WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
|
||||||
|
Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
|
||||||
|
IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
|
||||||
|
AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
|
||||||
|
UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
|
||||||
|
TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
|
||||||
|
BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
|
||||||
|
kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
|
||||||
|
AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
|
||||||
|
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
|
||||||
|
HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
|
||||||
|
sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
|
||||||
|
I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
|
||||||
|
J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
|
||||||
|
VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
||||||
|
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
29
certs/DigiCert-Global-Root-G2.pem
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com
|
||||||
|
# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com
|
||||||
|
# Label: "DigiCert Global Root G2"
|
||||||
|
# Serial: 4293743540046975378534879503202253541
|
||||||
|
# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44
|
||||||
|
# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4
|
||||||
|
# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
|
||||||
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||||
|
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
||||||
|
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
|
||||||
|
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
||||||
|
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
|
||||||
|
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
|
||||||
|
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
|
||||||
|
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
|
||||||
|
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
|
||||||
|
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
|
||||||
|
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
|
||||||
|
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
|
||||||
|
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
|
||||||
|
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
|
||||||
|
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
|
||||||
|
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
|
||||||
|
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
|
||||||
|
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
||||||
|
MrY=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
# Issuer: CN=GTS Root R1 O=Google Trust Services LLC
|
|
||||||
# Subject: CN=GTS Root R1 O=Google Trust Services LLC
|
|
||||||
# Label: "GTS Root R1"
|
|
||||||
# Serial: 159662320309726417404178440727
|
|
||||||
# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40
|
|
||||||
# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a
|
|
||||||
# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw
|
|
||||||
CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
|
|
||||||
MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
|
|
||||||
MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
|
|
||||||
Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA
|
|
||||||
A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo
|
|
||||||
27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w
|
|
||||||
Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw
|
|
||||||
TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl
|
|
||||||
qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH
|
|
||||||
szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8
|
|
||||||
Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk
|
|
||||||
MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92
|
|
||||||
wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p
|
|
||||||
aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN
|
|
||||||
VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID
|
|
||||||
AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
|
||||||
FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb
|
|
||||||
C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe
|
|
||||||
QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy
|
|
||||||
h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4
|
|
||||||
7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J
|
|
||||||
ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef
|
|
||||||
MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/
|
|
||||||
Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT
|
|
||||||
6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ
|
|
||||||
0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm
|
|
||||||
2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb
|
|
||||||
bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
# Issuer: CN=GTS Root R4 O=Google Trust Services LLC
|
|
||||||
# Subject: CN=GTS Root R4 O=Google Trust Services LLC
|
|
||||||
# Label: "GTS Root R4"
|
|
||||||
# Serial: 159662532700760215368942768210
|
|
||||||
# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8
|
|
||||||
# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47
|
|
||||||
# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD
|
|
||||||
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
|
|
||||||
A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
|
|
||||||
WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
|
|
||||||
IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
|
|
||||||
AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi
|
|
||||||
QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR
|
|
||||||
HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
|
||||||
BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D
|
|
||||||
9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8
|
|
||||||
p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
@ -9,30 +9,29 @@ CURL = curl \
|
||||||
DOMAINS_DUAL = \
|
DOMAINS_DUAL = \
|
||||||
api.macvendors.com/GTS-Root-R4 \
|
api.macvendors.com/GTS-Root-R4 \
|
||||||
api.telegram.org/Go-Daddy-Root-Certificate-Authority-G2 \
|
api.telegram.org/Go-Daddy-Root-Certificate-Authority-G2 \
|
||||||
cloudflare-dns.com/SSL-com-Root-Certification-Authority-ECC \
|
cloudflare-dns.com/DigiCert-Global-Root-G2 \
|
||||||
dns.google/GTS-Root-RX \
|
dns.google/GTS-Root-R4 \
|
||||||
dns.quad9.net/DigiCert-Global-Root-G3 \
|
dns.quad9.net/DigiCert-Global-Root-G3 \
|
||||||
git.eworm.de/Root-YE \
|
git.eworm.de/ISRG-Root-X2 \
|
||||||
gitlab.com/USERTrust-RSA-Certification-Authority \
|
lists.blocklist.de/Certum-Trusted-Network-CA \
|
||||||
lists.blocklist.de/GTS-Root-R4 \
|
|
||||||
matrix.org/GTS-Root-R4 \
|
matrix.org/GTS-Root-R4 \
|
||||||
raw.githubusercontent.com/USERTrust-RSA-Certification-Authority \
|
raw.githubusercontent.com/USERTrust-RSA-Certification-Authority \
|
||||||
rsc.eworm.de/Root-YE \
|
rsc.eworm.de/ISRG-Root-X2 \
|
||||||
upgrade.mikrotik.com/ISRG-Root-X1
|
upgrade.mikrotik.com/ISRG-Root-X1
|
||||||
DOMAINS_IPV4 = \
|
DOMAINS_IPV4 = \
|
||||||
1.1.1.1/SSL-com-Root-Certification-Authority-ECC \
|
1.1.1.1/DigiCert-Global-Root-G2 \
|
||||||
8.8.8.8/GTS-Root-RX \
|
8.8.8.8/GTS-Root-R1 \
|
||||||
9.9.9.9/DigiCert-Global-Root-G3 \
|
9.9.9.9/DigiCert-Global-Root-G3 \
|
||||||
api.mullvad.net/ISRG-Root-X1 \
|
api.mullvad.net/ISRG-Root-X1 \
|
||||||
ipv4.showipv6.de/ISRG-Root-X1 \
|
ipv4.showipv6.de/ISRG-Root-X1 \
|
||||||
ipv4.tunnelbroker.net/Starfield-Root-Certificate-Authority-G2 \
|
ipv4.tunnelbroker.net/Starfield-Root-Certificate-Authority-G2 \
|
||||||
mkcert.org/ISRG-Root-X1 \
|
mkcert.org/ISRG-Root-X1 \
|
||||||
ntfy.sh/ISRG-Root-X1 \
|
ntfy.sh/ISRG-Root-X1 \
|
||||||
www.dshield.org/GTS-Root-R4 \
|
www.dshield.org/ISRG-Root-X1 \
|
||||||
www.spamhaus.org/GTS-Root-R4
|
www.spamhaus.org/GTS-Root-R4
|
||||||
DOMAINS_IPV6 = \
|
DOMAINS_IPV6 = \
|
||||||
[2606\:4700\:4700\:\:1111]/SSL-com-Root-Certification-Authority-ECC \
|
[2606\:4700\:4700\:\:1111]/DigiCert-Global-Root-G2 \
|
||||||
[2001\:4860\:4860\:\:8888]/GTS-Root-RX \
|
[2001\:4860\:4860\:\:8888]/GTS-Root-R1 \
|
||||||
[2620\:fe\:\:9]/DigiCert-Global-Root-G3 \
|
[2620\:fe\:\:9]/DigiCert-Global-Root-G3 \
|
||||||
ipv6.showipv6.de/ISRG-Root-X1
|
ipv6.showipv6.de/ISRG-Root-X1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Issuer: C=US, O=ISRG, CN=Root YE
|
|
||||||
# Subject: C=US, O=ISRG, CN=Root YE
|
|
||||||
# Label: "Root YE"
|
|
||||||
# Serial: A4026BA2EF6C7C20D4047E5E65A69380
|
|
||||||
# MD5 Fingerprint: 93:61:B1:AC:E4:DC:A4:8B:C6:FF:A4:A2:2B:D4:64:64
|
|
||||||
# SHA1 Fingerprint: A9:57:15:57:A7:7D:B7:8F:FA:C2:E9:7B:57:B8:98:56:90:39:C3:40
|
|
||||||
# SHA256 Fingerprint: E1:4F:FC:AD:5B:00:25:73:10:06:CA:A4:3A:12:1A:22:D8:E9:70:0F:4F:B9:CF:85:2F:02:A7:08:AA:5D:56:66
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB2TCCAWCgAwIBAgIRAKQCa6LvbHwg1AR+XmWmk4AwCgYIKoZIzj0EAwMwLjEL
|
|
||||||
MAkGA1UEBhMCVVMxDTALBgNVBAoTBElTUkcxEDAOBgNVBAMTB1Jvb3QgWUUwHhcN
|
|
||||||
MjUwOTAzMDAwMDAwWhcNNDUwOTAyMjM1OTU5WjAuMQswCQYDVQQGEwJVUzENMAsG
|
|
||||||
A1UEChMESVNSRzEQMA4GA1UEAxMHUm9vdCBZRTB2MBAGByqGSM49AgEGBSuBBAAi
|
|
||||||
A2IABDwS/6vhrcVqcbBo+wgdI3fwn9x7DNJJOY/lTOti0vkwuRN87RhEhTH17E7X
|
|
||||||
yFjWsPYhIPt/wzOqxTd2b+4ZJNy9ID04YywF9U5zasDVyGSNErVNtz8uSGh5izW8
|
|
||||||
7j77GaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
|
|
||||||
BBYEFKPIJlqOoUzQNWP8myPIOq5W809WMAoGCCqGSM49BAMDA2cAMGQCMHhMr8N9
|
|
||||||
LdL1VQKs9BdV81r76eXRB6mtjuNjzk6/lBsPNToWLTDzGYgtQKO1jl63uAIwGV7m
|
|
||||||
onyF377c+MM1oqVNs17sgu7F9YKZwgLmVbeOMDbKAXHtKMDLbiGllCcs8f47
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
# Issuer: C=US, O=ISRG, CN=Root YR
|
|
||||||
# Subject: C=US, O=ISRG, CN=Root YR
|
|
||||||
# Label: "Root YR"
|
|
||||||
# Serial: EC46349360CF4B0FF8A982D93AA9CA3D
|
|
||||||
# MD5 Fingerprint: B7:C3:9E:B2:5C:FA:D6:0D:0B:F8:7F:A6:D8:A0:95:F7
|
|
||||||
# SHA1 Fingerprint: C5:F1:11:DA:84:F7:DE:F8:E6:F3:F9:9F:8F:5F:36:FF:85:BA:B1:B1
|
|
||||||
# SHA256 Fingerprint: E5:7B:7E:6F:15:0C:41:91:02:E8:D5:C0:55:72:9F:F9:67:B9:D1:A8:29:BF:00:CE:C8:9C:A6:04:EB:F4:A8:6F
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFKTCCAxGgAwIBAgIRAOxGNJNgz0sP+KmC2Tqpyj0wDQYJKoZIhvcNAQELBQAw
|
|
||||||
LjELMAkGA1UEBhMCVVMxDTALBgNVBAoTBElTUkcxEDAOBgNVBAMTB1Jvb3QgWVIw
|
|
||||||
HhcNMjUwOTAzMDAwMDAwWhcNNDUwOTAyMjM1OTU5WjAuMQswCQYDVQQGEwJVUzEN
|
|
||||||
MAsGA1UEChMESVNSRzEQMA4GA1UEAxMHUm9vdCBZUjCCAiIwDQYJKoZIhvcNAQEB
|
|
||||||
BQADggIPADCCAgoCggIBANvGJnN78CTJdWL3+eGfsLN5TrNBJs+VH9hRXqRbwxu9
|
|
||||||
sGNiB0BD1fcOxbSUQCJIM1xE13Db+5Cw1w0s0EBYsvuIP/6joF0w8cuImbgR1OGg
|
|
||||||
YbSQ4OpzI+DG8SGuTlcE873OCS+kh3srlo6vl43M5OJg4Aeo1sfHp6kTJDoIiFBN
|
|
||||||
JAY+OKfX/FUvYKuhjT+no49lmqmupSBI5PkBQiqrEGtWU5uxU/cQWHGu8jSjFBzn
|
|
||||||
ZqvbNPLMXMLFxCb3WTfrJBXXjqvWG+v4bjzxjjeAtOlU7qarRDvNOyAuQYLln904
|
|
||||||
M+faKx8hnLCpJ15ZqaEgcNlY+9MMWcC5yvL2A2j3l9+2buggZX+dOE91zYmIdawT
|
|
||||||
vSZuVvlbRrAlLxIB6pwMBjneXCjYQ8+3BCCjssbSNpZU3hTcBDdhfAlEDlYr6pEa
|
|
||||||
tnMdmDT5BqnKC92bd0EhM1fbLHioLccLCuievT8ZkPhZrq7Mii7gNXAcUEAR8+lz
|
|
||||||
Yal+9zTg7C5DALyVOeG/CqfRAMn1KSHCR0NSA6P8tn/mGRlnCct5rtVCLnVySVpU
|
|
||||||
6H1qGg3DgTOuskf8eahTMiYbI5ezPJmO5ertalskQ1utp74+eDy92PI4ftHKTbq9
|
|
||||||
IWhH4YZKh3WnJEIt+oQvlYZbY8tpEroKrFB6PFGzrJIDRyts4HqvuH52RFj2zv/B
|
|
||||||
AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
|
|
||||||
DgQWBBTe51tg0CJtQCh9Pw0B/qS1UrRRlDANBgkqhkiG9w0BAQsFAAOCAgEAWHnf
|
|
||||||
713Bdkq7t5yN2dNIgQakUb94X9WuyhMEHHkgx4oDpSUlnG0w4g94MoqaEUE31ZjR
|
|
||||||
LU7L5LD1g9ujFHTQu8AD215AHMVQFbm6j8hQxdXHAzDajFNQnOlDJrLjzIx176oy
|
|
||||||
AjvUtejZx2NNmdb5fd0WGVGsCdoAJ3N8ozo7ajE8t6vfxStZb4BQ9WYJGHUDrv2N
|
|
||||||
i5tJF6CNiPnlzs3BUfECRbE4JSk+jvy8+VoGiFE8qsH/j78x2fjgQhAQFV7P7Zxy
|
|
||||||
dBTZ1wEkNpZNW2qnaK1SKBLa+xf6E06YRIq5uaI+HWH8SY1y5VbRgzq40EKg3yxP
|
|
||||||
06fz+uYAUIFJoLNfhwRCc3Q6pQVuMX3yAjHAes4gk4moGcLQ5p7HAh39yeylZc1J
|
|
||||||
41sx/jKwLIkPE6Rr1Nf4pxdsxf9SA4yOEiAkDgq04DVxn8hgYFdUtBCuiuVC2heA
|
|
||||||
EiqVEa+8QZjuw8Gj0EbHXcRd1nInvGqRS1o9Is7YBdQN57X1AYveGBNNqjICSb7c
|
|
||||||
awuw1EawTDrs13VUlJVEsbQ0/O/1aaV73mCdOQ8azqL2KTv1Ewu1xbquE2S+kdQU
|
|
||||||
To9TUwat3wUA6cwXh1EfpS/3fJ0aGah5hdpRyoCLDlsSn8tkrjMfFFX0viC+GxHc
|
|
||||||
sI1ANRYvqSFC2X1VRZfDg+wD6E21BccmifG4yWc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation
|
|
||||||
# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation
|
|
||||||
# Label: "SSL.com Root Certification Authority ECC"
|
|
||||||
# Serial: 8495723813297216424
|
|
||||||
# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e
|
|
||||||
# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a
|
|
||||||
# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC
|
|
||||||
VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
|
|
||||||
U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0
|
|
||||||
aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz
|
|
||||||
WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0
|
|
||||||
b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS
|
|
||||||
b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
|
|
||||||
BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI
|
|
||||||
7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg
|
|
||||||
CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud
|
|
||||||
EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD
|
|
||||||
VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T
|
|
||||||
kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+
|
|
||||||
gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-certificates
|
# RouterOS script: check-certificates
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
# requires device-mode, fetch
|
# requires device-mode, fetch
|
||||||
#
|
#
|
||||||
# check for certificate validity
|
# check for certificate validity
|
||||||
|
|
@ -21,11 +21,10 @@
|
||||||
:global CertWarnTime;
|
:global CertWarnTime;
|
||||||
:global Identity;
|
:global Identity;
|
||||||
|
|
||||||
:global CertificateAvailable;
|
:global CertificateAvailable
|
||||||
:global EscapeForRegEx;
|
:global EscapeForRegEx;
|
||||||
:global IfThenElse;
|
:global IfThenElse;
|
||||||
:global LogPrint;
|
:global LogPrint;
|
||||||
:global LogPrintOnce;
|
|
||||||
:global ParseKeyValueStore;
|
:global ParseKeyValueStore;
|
||||||
:global ScriptLock;
|
:global ScriptLock;
|
||||||
:global SendNotification2;
|
:global SendNotification2;
|
||||||
|
|
@ -55,16 +54,8 @@
|
||||||
"' (file '" . $CertFileName . "')...");
|
"' (file '" . $CertFileName . "')...");
|
||||||
|
|
||||||
:do {
|
:do {
|
||||||
:onerror Err {
|
/tool/fetch check-certificate=yes-without-crl http-header-field=({ [ $FetchUserAgentStr $ScriptName ] }) \
|
||||||
/tool/fetch check-certificate=yes-without-crl \
|
|
||||||
http-header-field=({ [ $FetchUserAgentStr $ScriptName ] }) \
|
|
||||||
($CertRenewUrl . $CertFileName) dst-path=$CertFileName as-value;
|
($CertRenewUrl . $CertFileName) dst-path=$CertFileName as-value;
|
||||||
} do={
|
|
||||||
:if ($Err != "Fetch failed with status 404") do={
|
|
||||||
$LogPrint warning $0 ("Failed fetching certificate: " . $Err);
|
|
||||||
}
|
|
||||||
:error false;
|
|
||||||
}
|
|
||||||
$WaitForFile $CertFileName;
|
$WaitForFile $CertFileName;
|
||||||
|
|
||||||
:local DecryptionFailed true;
|
:local DecryptionFailed true;
|
||||||
|
|
@ -115,6 +106,7 @@
|
||||||
:local FormatCertChain do={
|
:local FormatCertChain do={
|
||||||
:local Cert $1;
|
:local Cert $1;
|
||||||
|
|
||||||
|
:global EitherOr;
|
||||||
:global ParseKeyValueStore;
|
:global ParseKeyValueStore;
|
||||||
|
|
||||||
:local CertVal [ /certificate/get $Cert ];
|
:local CertVal [ /certificate/get $Cert ];
|
||||||
|
|
@ -125,15 +117,9 @@
|
||||||
|
|
||||||
:local Return "";
|
:local Return "";
|
||||||
:for I from=0 to=5 do={
|
:for I from=0 to=5 do={
|
||||||
:set Return ($Return . [ $ParseKeyValueStore ($CertVal->"issuer") ]->"CN");
|
:set Return ($Return . [ $EitherOr ([ $ParseKeyValueStore ($CertVal->"issuer") ]->"CN") \
|
||||||
:if ([ :len [ /certificate/builtin/find where skid=($CertVal->"akid") ] ] > 0) do={
|
([ $ParseKeyValueStore (($CertVal->"issuer")->0) ]->"CN") ]);
|
||||||
:return $Return;
|
|
||||||
}
|
|
||||||
:do {
|
|
||||||
:set CertVal [ /certificate/get [ find where skid=($CertVal->"akid") ] ];
|
:set CertVal [ /certificate/get [ find where skid=($CertVal->"akid") ] ];
|
||||||
} on-error={
|
|
||||||
:return ($Return . " (possibly incomplete!)");
|
|
||||||
}
|
|
||||||
:if (($CertVal->"akid") = "" || ($CertVal->"akid") = ($CertVal->"skid")) do={
|
:if (($CertVal->"akid") = "" || ($CertVal->"akid") = ($CertVal->"skid")) do={
|
||||||
:return $Return;
|
:return $Return;
|
||||||
}
|
}
|
||||||
|
|
@ -170,7 +156,7 @@
|
||||||
|
|
||||||
:do {
|
:do {
|
||||||
:if ([ :len $CertRenewUrl ] = 0) do={
|
:if ([ :len $CertRenewUrl ] = 0) do={
|
||||||
$LogPrintOnce info $ScriptName ("No CertRenewUrl given.");
|
$LogPrint info $ScriptName ("No CertRenewUrl given.");
|
||||||
:error false;
|
:error false;
|
||||||
}
|
}
|
||||||
$LogPrint info $ScriptName ("Attempting to renew certificate '" . ($CertVal->"name") . "'.");
|
$LogPrint info $ScriptName ("Attempting to renew certificate '" . ($CertVal->"name") . "'.");
|
||||||
|
|
@ -200,13 +186,11 @@
|
||||||
|
|
||||||
:local CertNew [ /certificate/find where name~("^" . [ $EscapeForRegEx [ $UrlEncode $FetchName ] ] . "\\.(p12|pem)_[0-9]+\$") \
|
:local CertNew [ /certificate/find where name~("^" . [ $EscapeForRegEx [ $UrlEncode $FetchName ] ] . "\\.(p12|pem)_[0-9]+\$") \
|
||||||
(common-name=($CertVal->"common-name") or subject-alt-name~("(^|\\W)(DNS|IP):" . [ $EscapeForRegEx $LastName ] . "(\\W|\$)")) \
|
(common-name=($CertVal->"common-name") or subject-alt-name~("(^|\\W)(DNS|IP):" . [ $EscapeForRegEx $LastName ] . "(\\W|\$)")) \
|
||||||
fingerprint!=[ :tostr ($CertVal->"fingerprint") ] ];
|
fingerprint!=[ :tostr ($CertVal->"fingerprint") ] expires-after>$CertRenewTime ];
|
||||||
:local CertNewVal [ /certificate/get $CertNew ];
|
:local CertNewVal [ /certificate/get $CertNew ];
|
||||||
|
|
||||||
:if (($CertVal->"expires-after") > ($CertNewVal->"expires-after")) do={
|
:if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") ] = false) do={
|
||||||
/certificate/remove $CertNew;
|
$LogPrint warning $ScriptName ("The certificate chain is not available!");
|
||||||
$LogPrint warning $ScriptName ("Old certificate is newer than the new one. Aborting renew.");
|
|
||||||
:error false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:if (($CertVal->"private-key") = true && ($CertVal->"private-key") != ($CertNewVal->"private-key")) do={
|
:if (($CertVal->"private-key") = true && ($CertVal->"private-key") != ($CertNewVal->"private-key")) do={
|
||||||
|
|
@ -215,10 +199,6 @@
|
||||||
:error false;
|
:error false;
|
||||||
}
|
}
|
||||||
|
|
||||||
:if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") "fetch" ] = false) do={
|
|
||||||
$LogPrint warning $ScriptName ("The certificate chain is not available!");
|
|
||||||
}
|
|
||||||
|
|
||||||
/ip/service/set certificate=($CertNewVal->"name") [ find where certificate=($CertVal->"name") ];
|
/ip/service/set certificate=($CertNewVal->"name") [ find where certificate=($CertVal->"name") ];
|
||||||
|
|
||||||
/ip/ipsec/identity/set certificate=($CertNewVal->"name") [ find where certificate=($CertVal->"name") ];
|
/ip/ipsec/identity/set certificate=($CertNewVal->"name") [ find where certificate=($CertVal->"name") ];
|
||||||
|
|
@ -251,7 +231,7 @@
|
||||||
:local State [ $IfThenElse (($CertVal->"expired") = true) "expired" "is about to expire" ];
|
:local State [ $IfThenElse (($CertVal->"expired") = true) "expired" "is about to expire" ];
|
||||||
|
|
||||||
$SendNotification2 ({ origin=$ScriptName; \
|
$SendNotification2 ({ origin=$ScriptName; \
|
||||||
subject=([ $SymbolForNotification "lock-with-ink-pen,warning-sign" ] . "Certificate warning: " . ($CertVal->"name")); \
|
subject=([ $SymbolForNotification "warning-sign" ] . "Certificate warning: " . ($CertVal->"name")); \
|
||||||
message=("A certificate on " . $Identity . " " . $State . ".\n\n" . [ $FormatInfo $Cert ]) });
|
message=("A certificate on " . $Identity . " " . $State . ".\n\n" . [ $FormatInfo $Cert ]) });
|
||||||
$LogPrint info $ScriptName ("The certificate '" . ($CertVal->"name") . "' " . $State . \
|
$LogPrint info $ScriptName ("The certificate '" . ($CertVal->"name") . "' " . $State . \
|
||||||
", it is invalid after " . ($CertVal->"invalid-after") . ".");
|
", it is invalid after " . ($CertVal->"invalid-after") . ".");
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-health.d/state
|
# RouterOS script: check-health.d/state
|
||||||
# Copyright (c) 2019-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# check for RouterOS health state - state plugin
|
# check for RouterOS health state - state plugin
|
||||||
# https://rsc.eworm.de/doc/check-health.md
|
# https://rsc.eworm.de/doc/check-health.md
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-health.d/temperature
|
# RouterOS script: check-health.d/temperature
|
||||||
# Copyright (c) 2019-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# check for RouterOS health state - temperature plugin
|
# check for RouterOS health state - temperature plugin
|
||||||
# https://rsc.eworm.de/doc/check-health.md
|
# https://rsc.eworm.de/doc/check-health.md
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-health.d/voltage
|
# RouterOS script: check-health.d/voltage
|
||||||
# Copyright (c) 2019-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# check for RouterOS health state - voltage plugin
|
# check for RouterOS health state - voltage plugin
|
||||||
# https://rsc.eworm.de/doc/check-health.md
|
# https://rsc.eworm.de/doc/check-health.md
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-health
|
# RouterOS script: check-health
|
||||||
# Copyright (c) 2019-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# check for RouterOS health state
|
# check for RouterOS health state
|
||||||
# https://rsc.eworm.de/doc/check-health.md
|
# https://rsc.eworm.de/doc/check-health.md
|
||||||
|
|
@ -74,7 +74,7 @@
|
||||||
:set CheckHealthRAMUtilizationNotified false;
|
:set CheckHealthRAMUtilizationNotified false;
|
||||||
}
|
}
|
||||||
|
|
||||||
:local Plugins [ /system/script/find where name~"^check-health\\.d/." ];
|
:local Plugins [ /system/script/find where name~"^check-health.d/." ];
|
||||||
:if ([ :len $Plugins ] = 0) do={
|
:if ([ :len $Plugins ] = 0) do={
|
||||||
$LogPrint debug $ScriptName ("No plugins installed.");
|
$LogPrint debug $ScriptName ("No plugins installed.");
|
||||||
:set ExitOK true;
|
:set ExitOK true;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-lte-firmware-upgrade
|
# RouterOS script: check-lte-firmware-upgrade
|
||||||
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# check for LTE firmware upgrade, send notification
|
# check for LTE firmware upgrade, send notification
|
||||||
# https://rsc.eworm.de/doc/check-lte-firmware-upgrade.md
|
# https://rsc.eworm.de/doc/check-lte-firmware-upgrade.md
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-perpetual-license
|
# RouterOS script: check-perpetual-license
|
||||||
# Copyright (c) 2025-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# check perpetual license on CHR
|
# check perpetual license on CHR
|
||||||
# https://rsc.eworm.de/doc/check-perpetual-license.md
|
# https://rsc.eworm.de/doc/check-perpetual-license.md
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
$LogPrint warning $ScriptName ("Your license expired on " . ($License->"deadline-at") . "!");
|
$LogPrint warning $ScriptName ("Your license expired on " . ($License->"deadline-at") . "!");
|
||||||
:if ($SentCertificateNotification != "expired") do={
|
:if ($SentCertificateNotification != "expired") do={
|
||||||
$SendNotification2 ({ origin=$ScriptName; \
|
$SendNotification2 ({ origin=$ScriptName; \
|
||||||
subject=([ $SymbolForNotification "scroll,cross-mark" ] . "License expired!"); \
|
subject=([ $SymbolForNotification "warning-sign" ] . "License expired!"); \
|
||||||
message=("Your license expired on " . ($License->"deadline-at") . \
|
message=("Your license expired on " . ($License->"deadline-at") . \
|
||||||
", can no longer update RouterOS on " . $Identity . "...") });
|
", can no longer update RouterOS on " . $Identity . "...") });
|
||||||
:set SentCertificateNotification "expired";
|
:set SentCertificateNotification "expired";
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
$LogPrint warning $ScriptName ("Your license will expire on " . ($License->"deadline-at") . "!");
|
$LogPrint warning $ScriptName ("Your license will expire on " . ($License->"deadline-at") . "!");
|
||||||
:if ($SentCertificateNotification != "warning") do={
|
:if ($SentCertificateNotification != "warning") do={
|
||||||
$SendNotification2 ({ origin=$ScriptName; \
|
$SendNotification2 ({ origin=$ScriptName; \
|
||||||
subject=([ $SymbolForNotification "scroll,warning-sign" ] . "License about to expire!"); \
|
subject=([ $SymbolForNotification "warning-sign" ] . "License about to expire!"); \
|
||||||
message=("Your license failed to renew and is about to expire on " . \
|
message=("Your license failed to renew and is about to expire on " . \
|
||||||
($License->"deadline-at") . " on " . $Identity . "...") });
|
($License->"deadline-at") . " on " . $Identity . "...") });
|
||||||
:set SentCertificateNotification "warning";
|
:set SentCertificateNotification "warning";
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
[ :totime ($License->"deadline-at") ] - 4w > [ :timestamp ]) do={
|
[ :totime ($License->"deadline-at") ] - 4w > [ :timestamp ]) do={
|
||||||
$LogPrint info $ScriptName ("Your license was successfully renewed.");
|
$LogPrint info $ScriptName ("Your license was successfully renewed.");
|
||||||
$SendNotification2 ({ origin=$ScriptName; \
|
$SendNotification2 ({ origin=$ScriptName; \
|
||||||
subject=([ $SymbolForNotification "scroll,white-heavy-check-mark" ] . "License renewed"); \
|
subject=([ $SymbolForNotification "white-heavy-check-mark" ] . "License renewed"); \
|
||||||
message=("Your license was successfully renewed on " . $Identity . \
|
message=("Your license was successfully renewed on " . $Identity . \
|
||||||
". It is now valid until " . ($License->"deadline-at") . ".") });
|
". It is now valid until " . ($License->"deadline-at") . ".") });
|
||||||
:set SentCertificateNotification;
|
:set SentCertificateNotification;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: check-routeros-update
|
# RouterOS script: check-routeros-update
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
# requires device-mode, fetch, scheduler
|
# requires device-mode, fetch, scheduler
|
||||||
#
|
#
|
||||||
# check for RouterOS update, send notification and/or install
|
# check for RouterOS update, send notification and/or install
|
||||||
|
|
@ -39,11 +39,14 @@
|
||||||
:local DoUpdate do={
|
:local DoUpdate do={
|
||||||
:local ScriptName [ :tostr $1 ];
|
:local ScriptName [ :tostr $1 ];
|
||||||
|
|
||||||
|
:global LogPrint;
|
||||||
|
|
||||||
:if ([ :len [ /system/script/find where name="packages-update" ] ] > 0) do={
|
:if ([ :len [ /system/script/find where name="packages-update" ] ] > 0) do={
|
||||||
/system/script/run packages-update;
|
/system/script/run packages-update;
|
||||||
} else={
|
} else={
|
||||||
/system/package/update/install without-paging;
|
/system/package/update/install without-paging;
|
||||||
}
|
}
|
||||||
|
$LogPrint info $ScriptName ("Waiting for system to reboot.");
|
||||||
}
|
}
|
||||||
|
|
||||||
:if ([ $ScriptLock $ScriptName ] = false) do={
|
:if ([ $ScriptLock $ScriptName ] = false) do={
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: collect-wireless-mac.capsman
|
# RouterOS script: collect-wireless-mac.capsman
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=40
|
# provides: lease-script, order=40
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: collect-wireless-mac.local
|
# RouterOS script: collect-wireless-mac.local
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=40
|
# provides: lease-script, order=40
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: collect-wireless-mac%TEMPL%
|
# RouterOS script: collect-wireless-mac%TEMPL%
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=40
|
# provides: lease-script, order=40
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: collect-wireless-mac.wifi
|
# RouterOS script: collect-wireless-mac.wifi
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=40
|
# provides: lease-script, order=40
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
# https://rsc.eworm.de/doc/collect-wireless-mac.md
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Makefile
|
|
||||||
|
|
||||||
HTML := $(shell grep -xl '<!-- static html //-->' *.html)
|
|
||||||
|
|
||||||
.PHONY: all docs clean
|
|
||||||
|
|
||||||
all: docs
|
|
||||||
|
|
||||||
badges.html: badges.md
|
|
||||||
markdown $< > $@
|
|
||||||
|
|
||||||
docs: static-html.sh $(HTML) badges.html
|
|
||||||
./static-html.sh $(HTML)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f badges.html
|
|
||||||
git checkout HEAD -- $(HTML)
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
|
||||||
[](https://t.me/routeros_scripts)
|
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
|
||||||
|
|
@ -6,4 +6,4 @@ set -e
|
||||||
|
|
||||||
md5sum $(find -name '*.rsc' | sort) | \
|
md5sum $(find -name '*.rsc' | sort) | \
|
||||||
sed -e "s| \./||" -e 's|.rsc$||' | \
|
sed -e "s| \./||" -e 's|.rsc$||' | \
|
||||||
jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add'
|
jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add' > 'checksums.json'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
sed \
|
|
||||||
-e "/^:global CommitId/c :global CommitId \"${COMMITID:-unknown}\";" \
|
|
||||||
-e "/^:global CommitInfo/c :global CommitInfo \"${COMMITINFO:-unknown}\";" \
|
|
||||||
< "${1}"
|
|
||||||
|
|
@ -2,22 +2,8 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
RELTO="$(dirname "${1}")"
|
sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html"
|
||||||
|
|
||||||
sed \
|
|
||||||
-e "s|__TITLE__|$(head -n1 "${1}")|" \
|
|
||||||
-e "s|__GENERAL__|$(realpath --relative-to="${RELTO}" general/)|" \
|
|
||||||
-e "s|__ROOT__|$(realpath --relative-to="${RELTO}" ./)|" \
|
|
||||||
< "${0}.d/head.html"
|
|
||||||
|
|
||||||
markdown -f toc,idanchor "${1}" | sed \
|
markdown -f toc,idanchor "${1}" | sed \
|
||||||
-e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \
|
-e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \
|
||||||
-e '/<h[1234] /s| id="\(.*\)">| id="\L\1">|' \
|
-e '/<h[1234] /s| id="\(.*\)">| id="\L\1">|'
|
||||||
-e '/<h[1234] /s|-2[1789cd]-||g' -e '/<h[1234] /s|--26-amp-3b-||g' \
|
printf '</body></html>'
|
||||||
-e '/^<pre>/s|pre|pre class="code" onclick="CopyToClipboard(this)"|g' \
|
|
||||||
-e '/The above link may be broken on code hosting sites/s|blockquote|blockquote style="display: none;"|'
|
|
||||||
|
|
||||||
sed \
|
|
||||||
-e "s|__DATE__|${DATE:-$(date --rfc-email)}|" \
|
|
||||||
-e "s|__VERSION__|${VERSION:-unknown}|" \
|
|
||||||
< "${0}.d/foot.html"
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
|
|
||||||
<p class="foot">RouterOS Scripts documentation generated on <i>__DATE__</i> for <i>__VERSION__</i><br />
|
|
||||||
Copyright © 2013-2026 Christian Hesse <mail@eworm.de></p>
|
|
||||||
|
|
||||||
</body></html>
|
|
||||||
|
|
@ -1,16 +1,15 @@
|
||||||
<!DOCTYPE html><html lang="en">
|
<!DOCTYPE html><html lang="en">
|
||||||
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
<head><title>RouterOS Scripts :: __TITLE__</title>
|
||||||
<title>RouterOS Scripts :: __TITLE__</title>
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
<link rel="stylesheet" type="text/css" href="__GENERAL__/style.css">
|
<style>
|
||||||
<link rel="icon" type="image/png" href="__ROOT__/logo.png">
|
body { font-family: sans-serif; }
|
||||||
<script type="text/javascript" src="__GENERAL__/clipboard.js"></script>
|
h2 { border-bottom: 1px solid #ccc; color: #000; }
|
||||||
|
a { text-decoration: none; }
|
||||||
|
a:hover { text-decoration: underline; }
|
||||||
|
blockquote { border-left: 4px solid #ccc; padding: 0 10px; color: #777; }
|
||||||
|
code { margin: 0 2px; padding: 2px 5px; border: 1px solid #ccc; background-color: #f8f8f8; border-radius: 3px; }
|
||||||
|
pre { background-color: #f8f8f8; border: 1px solid #ccc; overflow: auto; padding: 6px 10px; border-radius: 3px; }
|
||||||
|
pre code { margin: 0; padding: 0; border: 0; }
|
||||||
|
</style>
|
||||||
|
<link rel="icon" href="/logo.png" type="image/png">
|
||||||
</head><body>
|
</head><body>
|
||||||
|
|
||||||
<table><tr>
|
|
||||||
<td><img src="__GENERAL__/eworm-meadow.avif" alt="eworm on meadow" /></td>
|
|
||||||
<td><img src="__GENERAL__/qr-code.png" alt="QR code: rsc.eworm.de" /></td>
|
|
||||||
<td class="head"><span class="top">RouterOS Scripts</span><br />
|
|
||||||
<span class="bottom">a collection of scripts for MikroTik RouterOS</span></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
|
|
|
||||||
5
contrib/logo-color.d/style.css
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
body {
|
||||||
|
font-family: fira-sans, sans-serif;
|
||||||
|
font-size: 10pt;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
@ -1,30 +1,14 @@
|
||||||
<!DOCTYPE html><html lang="en">
|
<!DOCTYPE html>
|
||||||
<!-- static html //-->
|
<html lang="en">
|
||||||
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
<head>
|
||||||
<title>RouterOS Scripts :: Logo Color Changer</title>
|
<meta charset="UTF-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../general/style.css">
|
<title>RouterOS-Scripts Logo Color Changer</title>
|
||||||
<link rel="icon" type="image/png" href="../logo.png">
|
<link rel="stylesheet" type="text/css" href="logo-color.d/style.css">
|
||||||
<script src="logo-color.d/script.js"></script>
|
<script src="logo-color.d/script.js"></script>
|
||||||
</head><body>
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
<table><tr>
|
<h1>RouterOS-Scripts Logo Color Changer</h1>
|
||||||
<td><img src="../general/eworm-meadow.avif" alt="eworm on meadow" /></td>
|
|
||||||
<td><img src="../general/qr-code.png" alt="QR code: rsc.eworm.de" /></td>
|
|
||||||
<td class="head"><span class="top">RouterOS Scripts</span><br />
|
|
||||||
<span class="bottom">a collection of scripts for MikroTik RouterOS</span></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<h1>Logo Color Changer</h1>
|
|
||||||
|
|
||||||
<!-- badges here //-->
|
|
||||||
|
|
||||||
<p><a href="../README.md">⬅️ Go back to main README</a></p>
|
|
||||||
|
|
||||||
<blockquote style="/* display */"><p>💡️ <strong>Hint</strong>: This site or links
|
|
||||||
on it may be broken on code hosting sites. Use
|
|
||||||
<a href="https://rsc.eworm.de/main/contrib/logo-color.html">Logo Color Changer</a>
|
|
||||||
instead.</p></blockquote>
|
|
||||||
|
|
||||||
<p>You want the logo for your own notifications? But you joined the
|
<p>You want the logo for your own notifications? But you joined the
|
||||||
<a href="https://t.me/routeros_scripts">Telegram Group</a> and want
|
<a href="https://t.me/routeros_scripts">Telegram Group</a> and want
|
||||||
|
|
@ -40,23 +24,17 @@ something that differentiates? Color it!</p>
|
||||||
<p>Then right-click, click "<i>Take Screenshot</i>" and finally select the
|
<p>Then right-click, click "<i>Take Screenshot</i>" and finally select the
|
||||||
logo and download it.</p>
|
logo and download it.</p>
|
||||||
|
|
||||||
<p><img src="logo-color.d/browser-01.avif" alt="Screenshot Browser 01"></p>
|
<p><img src="logo-color.d/browser-01.avif" width=533 height=482 alt="Screenshot Browser 01">
|
||||||
<p><img src="logo-color.d/browser-02.avif" alt="Screenshot Browser 02"></p>
|
<img src="logo-color.d/browser-02.avif" width=533 height=482 alt="Screenshot Browser 02">
|
||||||
<p><img src="logo-color.d/browser-03.avif" alt="Screenshot Browser 03"></p>
|
<img src="logo-color.d/browser-03.avif" width=533 height=482 alt="Screenshot Browser 03"></p>
|
||||||
|
|
||||||
<p>(This example is with
|
<p>(This example is with
|
||||||
<a href="https://www.mozilla.org/de/firefox/new/">Firefox</a>. The workflow
|
<a href="https://www.mozilla.org/de/firefox/new/">Firefox</a>. The workflow
|
||||||
for other browsers may differ.)</p>
|
for other browsers may differ.)</p>
|
||||||
|
|
||||||
<p>See how to
|
<p>See how to
|
||||||
<a href="../doc/mod/notification-telegram.md#set-a-profile-photo">Set
|
<a href="../../about/doc/mod/notification-telegram.md#set-a-profile-photo">Set
|
||||||
a profile photo</a> for your Telegram bot.</p>
|
a profile photo</a> for your Telegram bot.</p>
|
||||||
|
|
||||||
<hr />
|
</body>
|
||||||
|
</html>
|
||||||
<p><a href="../README.md">⬅️ Go back to main README</a><br/>
|
|
||||||
<a href="#top">⬆️ Go back to top</a></p>
|
|
||||||
|
|
||||||
<p class="foot">Copyright © 2013-2026 Christian Hesse <mail@eworm.de></p>
|
|
||||||
|
|
||||||
</body></html>
|
|
||||||
|
|
|
||||||
36
contrib/notification.d/style.css
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
body {
|
||||||
|
font-family: fira-sans, sans-serif;
|
||||||
|
font-size: 10pt;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
div.notification {
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
width: 600px;
|
||||||
|
border: 3px outset #6c5d53;
|
||||||
|
/* border-radius: 5px; */
|
||||||
|
padding: 10px;
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
}
|
||||||
|
div.content {
|
||||||
|
padding-left: 60px;
|
||||||
|
}
|
||||||
|
img.logo {
|
||||||
|
float: left;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
p.heading {
|
||||||
|
margin: 0px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
p.hint {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
font-family: fira-mono, monospace;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
span.link {
|
||||||
|
color: #863600;
|
||||||
|
}
|
||||||
|
|
@ -1,57 +1,35 @@
|
||||||
<!DOCTYPE html><html lang="en">
|
<!DOCTYPE html>
|
||||||
<!-- static html //-->
|
<html lang="en">
|
||||||
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
<head>
|
||||||
<title>RouterOS Scripts :: Notification Generator</title>
|
<meta charset="UTF-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../general/style.css">
|
<title>RouterOS-Scripts Notification Generator</title>
|
||||||
<link rel="icon" type="image/png" href="../logo.png">
|
<link rel="stylesheet" type="text/css" href="notification.d/style.css">
|
||||||
<script src="notification.d/script.js"></script>
|
<script src="notification.d/script.js"></script>
|
||||||
</head><body>
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
<table><tr>
|
<h1>RouterOS-Scripts Notification Generator</h1>
|
||||||
<td><img src="../general/eworm-meadow.avif" alt="eworm on meadow" /></td>
|
|
||||||
<td><img src="../general/qr-code.png" alt="QR code: rsc.eworm.de" /></td>
|
|
||||||
<td class="head"><span class="top">RouterOS Scripts</span><br />
|
|
||||||
<span class="bottom">a collection of scripts for MikroTik RouterOS</span></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<h1>Notification Generator</h1>
|
|
||||||
|
|
||||||
<!-- badges here //-->
|
|
||||||
|
|
||||||
<p><a href="../README.md">⬅️ Go back to main README</a></p>
|
|
||||||
|
|
||||||
<blockquote style="/* display */"><p>💡️ <strong>Hint</strong>: This site or links
|
|
||||||
on it may be broken on code hosting sites. Use
|
|
||||||
<a href="https://rsc.eworm.de/main/contrib/notification.html">Notification Generator</a>
|
|
||||||
instead.</p></blockquote>
|
|
||||||
|
|
||||||
<div class="notification">
|
<div class="notification">
|
||||||
<img src="../logo.svg" alt="logo" class="logo" width=48 height=48>
|
<img src="../logo.svg" alt="logo" class="logo" width=48 height=48>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<p id="heading" class="heading">[<span id="hostname">MikroTik</span>] <span id="subject">ℹ️ Subject</span></p>
|
<p id="heading" class="heading">[<span id="hostname">MikroTik</span>] <span id="subject">ℹ️ Subject</span></p>
|
||||||
<pre id="message">Message</pre>
|
<pre id="message">Message</pre>
|
||||||
<p id="link" class="hint">🔗 <span id="link-text" class="link">https://rsc.eworm.de/</span></p>
|
<p id="link" class="hint">🔗 <span id="link-text" class="link">https://eworm.de/</span></p>
|
||||||
<p id="queued" class="hint">⏰ This message was queued since <i><span id="queued-since">2025-10-29 16:06:18</span></i> and may be obsolete.</p>
|
<p id="queued" class="hint">⏰ This message was queued since <span id="queued-since">oct/18/2022 18:30:48</span> and may be obsolete.</p>
|
||||||
<p id="cut" class="hint">✂️ The message was too long and has been truncated, cut off <i><span id="cut-percent">13</span>%</i>!</p>
|
<p id="cut" class="hint">✂️ The message was too long and has been truncated, cut off <span id="cut-percent">13</span>%!</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Hostname: <input type="text" value="MikroTik" onchange="update(this, 'hostname')"></p>
|
<p>Hostname: <input type="text" value="MikroTik" onchange="update(this, 'hostname')"></p>
|
||||||
<p>Subject: <input type="text" size=50 value="ℹ️ Subject" onchange="update(this, 'subject')"></p>
|
<p>Subject: <input type="text" size=50 value="ℹ️ Subject" onchange="update(this, 'subject')"></p>
|
||||||
<p>Message: <textarea id="w3review" name="w3review" rows="4" cols="50" onchange="update(this, 'message')">Message</textarea></p>
|
<p>Message: <textarea id="w3review" name="w3review" rows="4" cols="50" onchange="update(this, 'message')">Message</textarea></p>
|
||||||
<p><input type="checkbox" onclick="visible(this, 'link')"> Show link: <input type="text" value="https://rsc.eworm.de/" onchange="update(this, 'link-text')"></p>
|
<p><input type="checkbox" onclick="visible(this, 'link')"> Show link: <input type="text" value="https://eworm.de/" onchange="update(this, 'link-text')"></p>
|
||||||
<p><input type="checkbox" onclick="visible(this, 'queued')"> Queued since <input type="text" value="2025-10-29 16:06:18" onchange="update(this, 'queued-since')"></p>
|
<p><input type="checkbox" onclick="visible(this, 'queued')"> Queued since <input type="text" value="oct/18/2022 18:30:48" onchange="update(this, 'queued-since')"></p>
|
||||||
<p><input type="checkbox" onclick="visible(this, 'cut')"> Cut-off with <input type="number" min=1 max=99 value=13 onchange="update(this, 'cut-percent')"> percent</p>
|
<p><input type="checkbox" onclick="visible(this, 'cut')"> Cut-off with <input type="number" min=1 max=99 value=13 onchange="update(this, 'cut-percent')"> percent</p>
|
||||||
|
|
||||||
<p>Then right-click, click "<i>Take Screenshot</i>" and finally select the
|
<p>Then right-click, click "<i>Take Screenshot</i>" and finally select the
|
||||||
notification and download it.</p>
|
notification and download it.</p>
|
||||||
|
|
||||||
<hr />
|
</body>
|
||||||
|
</html>
|
||||||
<p><a href="../README.md">⬅️ Go back to main README</a><br/>
|
|
||||||
<a href="#top">⬆️ Go back to top</a></p>
|
|
||||||
|
|
||||||
<p class="foot">Copyright © 2013-2026 Christian Hesse <mail@eworm.de></p>
|
|
||||||
|
|
||||||
</body></html>
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
sed -i \
|
|
||||||
-e '/href=/s|\.md|\.html|' \
|
|
||||||
-e '/blockquote/s|/\* display \*/|display: none;|' \
|
|
||||||
-e '/<!-- badges here \/\/-->/r badges.html' \
|
|
||||||
-e '/<!-- badges here \/\/-->/d' \
|
|
||||||
"${@}"
|
|
||||||
|
|
@ -1,274 +0,0 @@
|
||||||
Telegram
|
|
||||||
========
|
|
||||||
|
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
|
||||||
[](https://t.me/routeros_scripts)
|
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
|
||||||
|
|
||||||
[⬅️ Go back to main README](../README.md)
|
|
||||||
|
|
||||||
We have [Miss Rose Bot ↗️](https://t.me/MissRose_bot) in our
|
|
||||||
[RouterOS-Scripts ↗️](https://t.me/routeros_scripts) Telegram group,
|
|
||||||
always kind and ready to help moderate.
|
|
||||||
|
|
||||||
Notes
|
|
||||||
-----
|
|
||||||
|
|
||||||
### README
|
|
||||||
|
|
||||||
/save readme Please read the [main README](https://rsc.eworm.de/) to understand how things work and to get the base installation right.
|
|
||||||
|
|
||||||
### Available scripts
|
|
||||||
|
|
||||||
#### accesslist-duplicates
|
|
||||||
|
|
||||||
/save accesslist-duplicates Find and remove access list duplicates with [accesslist-duplicates](https://rsc.eworm.de/doc/accesslist-duplicates.md).
|
|
||||||
|
|
||||||
#### backup-cloud
|
|
||||||
|
|
||||||
/save backup-cloud Upload backup to Mikrotik cloud with [backup-cloud](https://rsc.eworm.de/doc/backup-cloud.md).
|
|
||||||
|
|
||||||
#### backup-email
|
|
||||||
|
|
||||||
/save backup-email Send backup via e-mail with [backup-email](https://rsc.eworm.de/doc/backup-email.md).
|
|
||||||
|
|
||||||
#### backup-partition
|
|
||||||
|
|
||||||
/save backup-partition Save configuration to fallback partition with [backup-partition](https://rsc.eworm.de/doc/backup-partition.md).
|
|
||||||
|
|
||||||
#### backup-upload
|
|
||||||
|
|
||||||
/save backup-upload Upload backup to server with [backup-upload](https://rsc.eworm.de/doc/backup-upload.md).
|
|
||||||
|
|
||||||
#### capsman-download-packages
|
|
||||||
|
|
||||||
/save capsman-download-packages Download packages for CAP upgrade from CAPsMAN with [capsman-download-packages](https://rsc.eworm.de/doc/capsman-download-packages.md).
|
|
||||||
|
|
||||||
#### capsman-rolling-upgrade
|
|
||||||
|
|
||||||
/save capsman-rolling-upgrade Run rolling CAP upgrades from CAPsMAN with [capsman-rolling-upgrade](https://rsc.eworm.de/doc/capsman-rolling-upgrade.md).
|
|
||||||
|
|
||||||
#### certificate-renew-issued
|
|
||||||
|
|
||||||
/save certificate-renew-issued Renew locally issued certificates with [certificate-renew-issued](https://rsc.eworm.de/doc/certificate-renew-issued.md).
|
|
||||||
|
|
||||||
#### check-certificates
|
|
||||||
|
|
||||||
/save check-certificates Renew certificates and notify on expiration with [check-certificates](https://rsc.eworm.de/doc/check-certificates.md).
|
|
||||||
|
|
||||||
#### check-health
|
|
||||||
|
|
||||||
/save check-health Notify about health state with [check-health](https://rsc.eworm.de/doc/check-health.md).
|
|
||||||
|
|
||||||
#### check-lte-firmware-upgrade
|
|
||||||
|
|
||||||
/save check-lte-firmware-upgrade Notify on LTE firmware upgrade with [check-lte-firmware-upgrade](https://rsc.eworm.de/doc/check-lte-firmware-upgrade.md).
|
|
||||||
|
|
||||||
#### check-perpetual-license
|
|
||||||
|
|
||||||
/save check-perpetual-license Check perpetual license on CHR with [check-perpetual-license](https://rsc.eworm.de/doc/check-perpetual-license.md).
|
|
||||||
|
|
||||||
#### check-routeros-update
|
|
||||||
|
|
||||||
/save check-routeros-update Notify on RouterOS update with [check-routeros-update](https://rsc.eworm.de/doc/check-routeros-update.md).
|
|
||||||
|
|
||||||
#### collect-wireless-mac
|
|
||||||
|
|
||||||
/save collect-wireless-mac Collect MAC addresses in wireless access list with [collect-wireless-mac](https://rsc.eworm.de/doc/collect-wireless-mac.md).
|
|
||||||
|
|
||||||
#### daily-psk
|
|
||||||
|
|
||||||
/save daily-psk Use wireless network with [daily-psk](https://rsc.eworm.de/doc/daily-psk.md).
|
|
||||||
|
|
||||||
#### dhcp-lease-comment
|
|
||||||
|
|
||||||
/save dhcp-lease-comment Comment DHCP leases with [dhcp-lease-comment](https://rsc.eworm.de/doc/dhcp-lease-comment.md).
|
|
||||||
|
|
||||||
#### dhcp-to-dns
|
|
||||||
|
|
||||||
/save dhcp-to-dns Create DNS records for DHCP leases with [dhcp-to-dns](https://rsc.eworm.de/doc/dhcp-to-dns.md).
|
|
||||||
|
|
||||||
#### firmware-upgrade-reboot
|
|
||||||
|
|
||||||
/save firmware-upgrade-reboot Automatically upgrade firmware and reboot with [firmware-upgrade-reboot](https://rsc.eworm.de/doc/firmware-upgrade-reboot.md).
|
|
||||||
|
|
||||||
#### fw-addr-lists
|
|
||||||
|
|
||||||
/save fw-addr-lists Download, import and update firewall address-lists with [fw-addr-lists](https://rsc.eworm.de/doc/fw-addr-lists.md).
|
|
||||||
|
|
||||||
#### global-wait
|
|
||||||
|
|
||||||
/save global-wait Wait for global functions und modules with [global-wait](https://rsc.eworm.de/doc/global-wait.md).
|
|
||||||
|
|
||||||
#### gps-track
|
|
||||||
|
|
||||||
/save gps-track Send GPS position to server with [gps-track](https://rsc.eworm.de/doc/gps-track.md).
|
|
||||||
|
|
||||||
#### hotspot-to-wpa
|
|
||||||
|
|
||||||
/save hotspot-to-wpa Use WPA network with [hotspot-to-wpa](https://rsc.eworm.de/doc/hotspot-to-wpa.md).
|
|
||||||
|
|
||||||
#### ipsec-to-dns
|
|
||||||
|
|
||||||
/save ipsec-to-dns Create DNS records for IPSec peers with [ipsec-to-dns](https://rsc.eworm.de/doc/ipsec-to-dns.md).
|
|
||||||
|
|
||||||
#### ipv6-update
|
|
||||||
|
|
||||||
/save ipv6-update Update configuration on IPv6 prefix change with [ipv6-update](https://rsc.eworm.de/doc/ipv6-update.md).
|
|
||||||
|
|
||||||
#### ip-addr-bridge
|
|
||||||
|
|
||||||
/save ip-addr-bridge Manage IP addresses with [ip-addr-bridge](https://rsc.eworm.de/doc/ip-addr-bridge.md).
|
|
||||||
|
|
||||||
#### lease-script
|
|
||||||
|
|
||||||
/save lease-script Run other scripts on DHCP lease with [lease-script](https://rsc.eworm.de/doc/lease-script.md).
|
|
||||||
|
|
||||||
#### leds-mode
|
|
||||||
|
|
||||||
/save leds-mode Manage LEDs dark mode with [leds-mode](https://rsc.eworm.de/doc/leds-mode.md).
|
|
||||||
|
|
||||||
#### log-forward
|
|
||||||
|
|
||||||
/save log-forward Forward log messages via notification with [log-forward](https://rsc.eworm.de/doc/log-forward.md).
|
|
||||||
|
|
||||||
#### mode-button
|
|
||||||
|
|
||||||
/save mode-button Mode button with [mode-button](https://rsc.eworm.de/doc/mode-button.md).
|
|
||||||
|
|
||||||
#### netwatch-dns
|
|
||||||
|
|
||||||
/save netwatch-dns Manage DNS and DoH servers from netwatch with [netwatch-dns](https://rsc.eworm.de/doc/netwatch-dns.md).
|
|
||||||
|
|
||||||
#### netwatch-notify
|
|
||||||
|
|
||||||
/save netwatch-notify Notify on host up and down with [netwatch-notify](https://rsc.eworm.de/doc/netwatch-notify.md).
|
|
||||||
|
|
||||||
#### ospf-to-leds
|
|
||||||
|
|
||||||
/save ospf-to-leds Visualize OSPF state via LEDs with [ospf-to-leds](https://rsc.eworm.de/doc/ospf-to-leds.md).
|
|
||||||
|
|
||||||
#### packages-update
|
|
||||||
|
|
||||||
/save packages-update Manage system update with [packages-update](https://rsc.eworm.de/doc/packages-update.md).
|
|
||||||
|
|
||||||
#### ppp-on-up
|
|
||||||
|
|
||||||
/save ppp-on-up Run scripts on ppp connection with [ppp-on-up](https://rsc.eworm.de/doc/ppp-on-up.md).
|
|
||||||
|
|
||||||
#### sms-action
|
|
||||||
|
|
||||||
/save sms-action Act on received SMS with [sms-action](https://rsc.eworm.de/doc/sms-action.md).
|
|
||||||
|
|
||||||
#### sms-forward
|
|
||||||
|
|
||||||
/save sms-forward Forward received SMS with [sms-forward](https://rsc.eworm.de/doc/sms-forward.md).
|
|
||||||
|
|
||||||
#### super-mario-theme
|
|
||||||
|
|
||||||
/save super-mario-theme Play Super Mario theme with [super-mario-theme](https://rsc.eworm.de/doc/super-mario-theme.md).
|
|
||||||
|
|
||||||
#### telegram-chat
|
|
||||||
|
|
||||||
/save telegram-chat Chat with [telegram-chat](https://rsc.eworm.de/doc/telegram-chat.md).
|
|
||||||
|
|
||||||
#### unattended-lte-firmware-upgrade
|
|
||||||
|
|
||||||
/save unattended-lte-firmware-upgrade Install LTE firmware upgrade with [unattended-lte-firmware-upgrade](https://rsc.eworm.de/doc/unattended-lte-firmware-upgrade.md).
|
|
||||||
|
|
||||||
#### update-gre-address
|
|
||||||
|
|
||||||
/save update-gre-address Update GRE configuration with [update-gre-address](https://rsc.eworm.de/doc/update-gre-address.md).
|
|
||||||
|
|
||||||
#### update-tunnelbroker
|
|
||||||
|
|
||||||
/save update-tunnelbroker Update tunnelbroker configuration with [update-tunnelbroker](https://rsc.eworm.de/doc/update-tunnelbroker.md).
|
|
||||||
|
|
||||||
### Available modules
|
|
||||||
|
|
||||||
#### mod/bridge-port-to
|
|
||||||
|
|
||||||
/save mod/bridge-port-to Manage ports in bridge with [mod/bridge-port-to](https://rsc.eworm.de/doc/mod/bridge-port-to.md).
|
|
||||||
|
|
||||||
#### mod/bridge-port-vlan
|
|
||||||
|
|
||||||
/save mod/bridge-port-vlan Manage VLANs on bridge ports with [mod/bridge-port-vlan](https://rsc.eworm.de/doc/mod/bridge-port-vlan.md).
|
|
||||||
|
|
||||||
#### mod/inspectvar
|
|
||||||
|
|
||||||
/save mod/inspectvar Inspect variables with [mod/inspectvar](https://rsc.eworm.de/doc/mod/inspectvar.md).
|
|
||||||
|
|
||||||
#### mod/ipcalc
|
|
||||||
|
|
||||||
/save mod/ipcalc IP address calculation with [mod/ipcalc](https://rsc.eworm.de/doc/mod/ipcalc.md).
|
|
||||||
|
|
||||||
#### mod/notification-email
|
|
||||||
|
|
||||||
/save mod/notification-email Send notifications via e-mail with [mod/notification-email](https://rsc.eworm.de/doc/mod/notification-email.md).
|
|
||||||
|
|
||||||
#### mod/notification-gotify
|
|
||||||
|
|
||||||
/save mod/notification-gotify Send notifications via Gotify with [mod/notification-gotify](https://rsc.eworm.de/doc/mod/notification-gotify.md).
|
|
||||||
|
|
||||||
#### mod/notification-matrix
|
|
||||||
|
|
||||||
/save mod/notification-matrix Send notifications via Matrix with [mod/notification-matrix](https://rsc.eworm.de/doc/mod/notification-matrix.md).
|
|
||||||
|
|
||||||
#### mod/notification-ntfy
|
|
||||||
|
|
||||||
/save mod/notification-ntfy Send notifications via Ntfy with [mod/notification-ntfy](https://rsc.eworm.de/doc/mod/notification-ntfy.md).
|
|
||||||
|
|
||||||
#### mod/notification-telegram
|
|
||||||
|
|
||||||
/save mod/notification-telegram Send notifications via Telegram with [mod/notification-telegram](https://rsc.eworm.de/doc/mod/notification-telegram.md).
|
|
||||||
|
|
||||||
#### mod/scriptrunonce
|
|
||||||
|
|
||||||
/save mod/scriptrunonce Download script and run it once with [mod/scriptrunonce](https://rsc.eworm.de/doc/mod/scriptrunonce.md).
|
|
||||||
|
|
||||||
#### mod/ssh-keys-import
|
|
||||||
|
|
||||||
/save mod/ssh-keys-import Import ssh keys for public key authentication with [mod/ssh-keys-import](https://rsc.eworm.de/doc/mod/ssh-keys-import.md).
|
|
||||||
|
|
||||||
### Other
|
|
||||||
|
|
||||||
#### Installing from branches
|
|
||||||
|
|
||||||
/save branches Living on the edge or testing new features? Learn how to [switch specific scripts or the complete installation to different branches](https://rsc.eworm.de/BRANCHES.md).
|
|
||||||
|
|
||||||
#### Certificate name from browser
|
|
||||||
|
|
||||||
/save certificate-name-from-browser Running or accessing a custom service and looking for the CA certificate? Get the [certificate name from browser](https://rsc.eworm.de/CERTIFICATES.md).
|
|
||||||
|
|
||||||
#### Debug output and logs
|
|
||||||
|
|
||||||
/save debug Enable [debug output and logs](https://rsc.eworm.de/DEBUG.md) for more information on what happens.
|
|
||||||
|
|
||||||
#### Donate
|
|
||||||
|
|
||||||
/save donate This project is developed in private spare time and usage is free of charge for you. If you like the scripts and think this is of value for you or your business [please consider a donation](https://rsc.eworm.de/#donate). Thanks!
|
|
||||||
|
|
||||||
#### Fix existing installation
|
|
||||||
|
|
||||||
/save fix-installation [Fix existing installation] Your installation broke and you do not know back and forth? See how to [fix an existing installation](https://rsc.eworm.de/INITIAL-COMMANDS.md#fix-existing-installation).
|
|
||||||
|
|
||||||
#### Next!
|
|
||||||
|
|
||||||
/save next Another satisfied user. 😊 Next, please!
|
|
||||||
|
|
||||||
#### Off-topic
|
|
||||||
|
|
||||||
/save off-topic Please note this group is not about MikroTik RouterOS in general, but [RouterOS Scripts](https://rsc.eworm.de/). Your request is not about scripting at all, so please discuss somewhere else. See the [MikroTik RouterOS users (english)](https://t.me/RouterOS_users_english) group or official Mikrotik forums (https://forum.mikrotik.com/).
|
|
||||||
|
|
||||||
Greeting
|
|
||||||
--------
|
|
||||||
|
|
||||||
/setwelcome Hello {mention}, and welcome to {chatname}!
|
|
||||||
Please note this group is not about RouterOS in general, but [RouterOS Scripts](https://rsc.eworm.de/). Also pay attention to [rules](https://t.me/routeros_scripts/4), thanks!
|
|
||||||
|
|
||||||
---
|
|
||||||
[⬅️ Go back to main README](../README.md)
|
|
||||||
[⬆️ Go back to top](#top)
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
sed \
|
|
||||||
-e '/\/interface\/wifi\//d' \
|
|
||||||
-e '/\/interface\/wireless\//d' \
|
|
||||||
-e 's|%TEMPL%|.capsman|' \
|
|
||||||
-e '/^# NOT \/caps-man\/ #$/,/^# NOT \/caps-man\/ #$/d' \
|
|
||||||
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
|
||||||
< "${1}"
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
sed \
|
|
||||||
-e '/\/caps-man\//d' \
|
|
||||||
-e '/\/interface\/wifi\//d' \
|
|
||||||
-e 's|%TEMPL%|.local|' \
|
|
||||||
-e '/^# NOT \/interface\/wireless\/ #$/,/^# NOT \/interface\/wireless\/ #$/d' \
|
|
||||||
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
|
||||||
< "${1}"
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
sed \
|
|
||||||
-e '/\/caps-man\//d' \
|
|
||||||
-e '/\/interface\/wireless\//d' \
|
|
||||||
-e 's|%TEMPL%|.wifi|' \
|
|
||||||
-e '/^# NOT \/interface\/wifi\/ #$/,/^# NOT \/interface\/wifi\/ #$/d' \
|
|
||||||
-e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \
|
|
||||||
< "${1}"
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: daily-psk.capsman
|
# RouterOS script: daily-psk.capsman
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
# https://rsc.eworm.de/doc/daily-psk.md
|
# https://rsc.eworm.de/doc/daily-psk.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: daily-psk.local
|
# RouterOS script: daily-psk.local
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
# https://rsc.eworm.de/doc/daily-psk.md
|
# https://rsc.eworm.de/doc/daily-psk.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: daily-psk%TEMPL%
|
# RouterOS script: daily-psk%TEMPL%
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
# https://rsc.eworm.de/doc/daily-psk.md
|
# https://rsc.eworm.de/doc/daily-psk.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: daily-psk.wifi
|
# RouterOS script: daily-psk.wifi
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
# https://rsc.eworm.de/doc/daily-psk.md
|
# https://rsc.eworm.de/doc/daily-psk.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: dhcp-lease-comment.capsman
|
# RouterOS script: dhcp-lease-comment.capsman
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=60
|
# provides: lease-script, order=60
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: dhcp-lease-comment.local
|
# RouterOS script: dhcp-lease-comment.local
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=60
|
# provides: lease-script, order=60
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: dhcp-lease-comment%TEMPL%
|
# RouterOS script: dhcp-lease-comment%TEMPL%
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=60
|
# provides: lease-script, order=60
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: dhcp-lease-comment.wifi
|
# RouterOS script: dhcp-lease-comment.wifi
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=60
|
# provides: lease-script, order=60
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.15
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
# https://rsc.eworm.de/doc/dhcp-lease-comment.md
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!rsc by RouterOS
|
#!rsc by RouterOS
|
||||||
# RouterOS script: dhcp-to-dns
|
# RouterOS script: dhcp-to-dns
|
||||||
# Copyright (c) 2013-2026 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
|
||||||
# https://rsc.eworm.de/COPYING.md
|
# https://rsc.eworm.de/COPYING.md
|
||||||
#
|
#
|
||||||
# provides: lease-script, order=20
|
# provides: lease-script, order=20
|
||||||
# requires RouterOS, version=7.19
|
# requires RouterOS, version=7.16
|
||||||
#
|
#
|
||||||
# check DHCP leases and add/remove/update DNS entries
|
# check DHCP leases and add/remove/update DNS entries
|
||||||
# https://rsc.eworm.de/doc/dhcp-to-dns.md
|
# https://rsc.eworm.de/doc/dhcp-to-dns.md
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 5.1 KiB |
|
|
@ -4,7 +4,7 @@ Find and remove access list duplicates
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 11 KiB |
|
|
@ -4,7 +4,7 @@ Upload backup to Mikrotik cloud
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Send backup via e-mail
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Save configuration to fallback partition
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
|
|
@ -4,7 +4,7 @@ Upload backup to server
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Download packages for CAP upgrade from CAPsMAN
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Run rolling CAP upgrades from CAPsMAN
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Renew locally issued certificates
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 8.6 KiB |
BIN
doc/check-certificates.d/notification.avif
Normal file
|
After Width: | Height: | Size: 25 KiB |
|
|
@ -4,7 +4,7 @@ Renew certificates and notify on expiration
|
||||||
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
[](https://github.com/eworm-de/routeros-scripts/stargazers)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/network)
|
[](https://github.com/eworm-de/routeros-scripts/network)
|
||||||
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
[](https://github.com/eworm-de/routeros-scripts/watchers)
|
||||||
[](https://mikrotik.com/download/changelogs/)
|
[](https://mikrotik.com/download/changelogs/)
|
||||||
[](https://t.me/routeros_scripts)
|
[](https://t.me/routeros_scripts)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||||
|
|
||||||
|
|
@ -19,10 +19,9 @@ Description
|
||||||
This script tries to download and renew certificates, then notifies about
|
This script tries to download and renew certificates, then notifies about
|
||||||
certificates that are still about to expire.
|
certificates that are still about to expire.
|
||||||
|
|
||||||
### Sample notifications
|
### Sample notification
|
||||||
|
|
||||||

|

|
||||||

|
|
||||||
|
|
||||||
Requirements and installation
|
Requirements and installation
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 6.3 KiB |