mirror of
https://github.com/eworm-de/routeros-scripts.git
synced 2025-12-25 19:29:31 +00:00
Merge branch 'main' into main
This commit is contained in:
commit
32a3ca9e6a
348 changed files with 13201 additions and 10559 deletions
386
README.md
386
README.md
|
|
@ -1,44 +1,73 @@
|
|||
RouterOS Scripts
|
||||
================
|
||||
|
||||
[](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://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)
|
||||
|
||||

|
||||
|
||||
[RouterOS](https://mikrotik.com/software) is the operating system developed
|
||||
by [MikroTik](https://mikrotik.com/aboutus) for networking tasks. This
|
||||
repository holds a number of [scripts](https://wiki.mikrotik.com/wiki/Manual:Scripting)
|
||||
[RouterOS ↗️](https://mikrotik.com/software) is the operating system developed
|
||||
by [MikroTik ↗️](https://mikrotik.com/aboutus) for networking tasks. This
|
||||
repository holds a number of [scripts ↗️](https://wiki.mikrotik.com/wiki/Manual:Scripting)
|
||||
to manage RouterOS devices or extend their functionality.
|
||||
|
||||
*Use at your own risk*, pay attention to
|
||||
[license and warranty](#license-and-warranty)!
|
||||
[license and warranty](#license-and-warranty), and
|
||||
[disclaimer on external links](#disclaimer-on-external-links)!
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
### Software (RouterOS)
|
||||
|
||||
Latest version of the scripts require recent RouterOS to function properly.
|
||||
Make sure to install latest updates before you begin.
|
||||
Make sure to install latest updates before you begin. If new functionality
|
||||
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.
|
||||
|
||||
Specific scripts may require even newer RouterOS version.
|
||||
|
||||
> ℹ️ **Info**: The `main` branch is now RouterOS v7 only. If you are still
|
||||
> running RouterOS v6 switch to `routeros-v6` branch!
|
||||
|
||||
Starting with RouterOS 7.17 the
|
||||
[device-mode ↗️](https://help.mikrotik.com/docs/spaces/ROS/pages/93749258/Device-mode)
|
||||
has been extended to give more fine-grained control over what features are
|
||||
available. You need to enable `scheduler` and `fetch` at least, specific
|
||||
scripts may require additional features.
|
||||
|
||||
### Hardware
|
||||
|
||||
RouterOS packages increase in size with each release. This becomes a
|
||||
problem for devices with 16MB storage and below, those with an ARM CPU
|
||||
are specifically affected.
|
||||
|
||||
Huge configuration and lots of scripts give an extra risk. **Take care!**
|
||||
|
||||
Initial setup
|
||||
-------------
|
||||
|
||||
### Get me ready!
|
||||
|
||||
If you know how things work just copy and paste the
|
||||
[initial commands](INITIAL-COMMANDS.md). Remember to edit and rerun
|
||||
[initial commands](INITIAL-COMMANDS.md). These also support fixing an
|
||||
existing but broken installation. Remember to edit and rerun
|
||||
`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
|
||||
|
||||
Want to see it in action? I've had a presentation [Repository based
|
||||
RouterOS script distribution](https://www.youtube.com/watch?v=B9neG3oAhcY)
|
||||
including demonstation recorded live at [MUM Europe
|
||||
2019](https://mum.mikrotik.com/2019/EU/) in Vienna.
|
||||
RouterOS script distribution ↗️](https://www.youtube.com/watch?v=B9neG3oAhcY)
|
||||
including demonstration recorded live at [MUM Europe
|
||||
2019 ↗️](https://mum.mikrotik.com/2019/EU/) in Vienna.
|
||||
|
||||
> ⚠️ **Warning**: Some details changed. So see the presentation, then follow
|
||||
> the steps below for up-to-date commands.
|
||||
|
|
@ -46,86 +75,112 @@ including demonstation recorded live at [MUM Europe
|
|||
### The long way in detail
|
||||
|
||||
The update script does server certificate verification, so first step is to
|
||||
download the certificates. If you intend to download the scripts from a
|
||||
download the certificates.
|
||||
|
||||
> 💡️ **Hint**: RouterOS 7.19 comes with a builtin certificate store. You
|
||||
> can skip the steps regarding certificate download and import and jump
|
||||
> to [installation of scripts](#installation-of-scripts) if you set the
|
||||
> trust for these builtin trust anchors:
|
||||
> `/certificate/settings/set builtin-trust-anchors=trusted;`
|
||||
> With RouterOS 7.21 the functionality was changed. Set this at minimum,
|
||||
> but make sure not to drop other targets:
|
||||
> `/certificate/settings/set builtin-trust-store=fetch;`
|
||||
|
||||
If you intend to download the scripts from a
|
||||
different location (for example from github.com) install the corresponding
|
||||
certificate chain.
|
||||
|
||||
/ tool fetch "https://git.eworm.de/cgit/routeros-scripts/plain/certs/R3.pem" dst-path="letsencrypt-R3.pem";
|
||||
/tool/fetch "https://rsc.eworm.de/main/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem";
|
||||
|
||||

|
||||
|
||||
Note that the commands above do *not* verify server certificate, so if you
|
||||
want to be safe download with your workstations's browser and transfer the
|
||||
files to your MikroTik device.
|
||||
file to your MikroTik device.
|
||||
|
||||
* [ISRG Root X1](https://letsencrypt.org/certs/isrgrootx1.pem)
|
||||
* Let's Encrypt [R3](https://letsencrypt.org/certs/lets-encrypt-r3.pem)
|
||||
* [ISRG Root X2 ↗️](https://letsencrypt.org/certs/isrg-root-x2.pem)
|
||||
|
||||
Then we import the certificates.
|
||||
Then we import the certificate.
|
||||
|
||||
/ certificate import file-name=letsencrypt-R3.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
|
||||
a sensitive property, the passphrase.
|
||||
|
||||

|
||||
|
||||
For basic verification we rename the certificates and print their count. Make
|
||||
sure the certificate count is **two**.
|
||||
For basic verification we rename the certificate and print it by
|
||||
fingerprint. Make sure exactly this one certificate ("*ISRG-Root-X2*")
|
||||
is shown.
|
||||
|
||||
/ certificate set name="R3" [ find where fingerprint="67add1166b020ae61b8f5fc96813c04c2aa589960796865572a3c7e737613dfd" ];
|
||||
/ certificate set name="ISRG-Root-X1" [ find where fingerprint="96bcec06264976f37460779acf28c5a7cfe8a3c0aae11a8ffcee05c0bddf08c6" ];
|
||||
/ certificate print count-only where fingerprint="67add1166b020ae61b8f5fc96813c04c2aa589960796865572a3c7e737613dfd" or fingerprint="96bcec06264976f37460779acf28c5a7cfe8a3c0aae11a8ffcee05c0bddf08c6";
|
||||
/certificate/set name="ISRG-Root-X2" [ find where common-name="ISRG Root X2" ];
|
||||
/certificate/print proplist=name,fingerprint where fingerprint="69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470";
|
||||
|
||||

|
||||
|
||||
Always make sure there are no certificates installed you do not know or want!
|
||||
|
||||
#### Installation of scripts
|
||||
|
||||
All following commands will verify the server certificate. For validity the
|
||||
certificate's lifetime is checked with local time, so make sure the device's
|
||||
date and time is set correctly!
|
||||
|
||||
One extra step is required if you run RouterOS v6:
|
||||
|
||||
:global ScriptUpdatesUrlSuffix "\?h=routeros-v6";
|
||||
|
||||
Now let's download the main scripts and add them in configuration on the fly.
|
||||
|
||||
:global ScriptUpdatesUrlSuffix;
|
||||
:foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ / system script add name=$Script source=([ / tool fetch check-certificate=yes-without-crl ("https://git.eworm.de/cgit/routeros-scripts/plain/" . $Script . $ScriptUpdatesUrlSuffix) 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://rsc.eworm.de/main/" . $Script . ".rsc") output=user as-value ]->"data"); };
|
||||
|
||||

|
||||
|
||||
And finally run configuration and functions. This will also add the
|
||||
scheduler for loading at system startup automatically.
|
||||
|
||||
/system/script { run global-config; run global-functions; };
|
||||
|
||||

|
||||
|
||||
> 💡️ **Hint**: You see complaints regarding syntax errors? Most likely the
|
||||
> RouterOS on your device is too old. Check for updates!
|
||||
|
||||
### Scheduled automatic updates
|
||||
|
||||
The last step is optional: Add this scheduler **only** if you want the
|
||||
scripts to be updated automatically!
|
||||
|
||||
/system/scheduler/add name="ScriptInstallUpdate" start-time=startup interval=1d on-event=":global ScriptInstallUpdate; \$ScriptInstallUpdate;";
|
||||
|
||||

|
||||
|
||||
Editing configuration
|
||||
---------------------
|
||||
|
||||
The configuration needs to be tweaked for your needs. Edit
|
||||
`global-config-overlay`, copy configuration from
|
||||
[`global-config`](global-config) (the one without `-overlay`).
|
||||
`global-config-overlay`, copy relevant configuration from
|
||||
[`global-config`](global-config.rsc) (the one without `-overlay`).
|
||||
Save changes and exit with `Ctrl-o`.
|
||||
|
||||
/ system script edit global-config-overlay source;
|
||||
/system/script/edit global-config-overlay source;
|
||||
|
||||

|
||||

|
||||
|
||||
And finally load configuration and functions and add the scheduler.
|
||||
Additionally creating configuration snippets is supported. The script name
|
||||
of these snippets has to start with `global-config-overlay.d/` to make them
|
||||
being loaded automatically. This allows to split off parts of the
|
||||
configuration.
|
||||
|
||||
/ 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; }";
|
||||
To apply your changes run `global-config`, which will automatically load
|
||||
the overlay as well:
|
||||
|
||||

|
||||
/system/script/run global-config;
|
||||
|
||||
The last step is optional: Add this scheduler **only** if you want the scripts
|
||||
to be updated automatically!
|
||||

|
||||
|
||||
/ system scheduler add name="ScriptInstallUpdate" start-time=startup interval=1d on-event=":global ScriptInstallUpdate; \$ScriptInstallUpdate;";
|
||||
This last step is required when ever you make changes to your configuration.
|
||||
|
||||

|
||||
|
||||
### Changes for RouterOS v6
|
||||
|
||||
RouterOS v7 is the way to go, let's consider RouterOS v6 deprecated.
|
||||
If you want to stay with RouterOS v6 for some time add these lines
|
||||
to your `global-config-overlay`, if missing:
|
||||
|
||||
# Use branch routeros-v6 with RouterOS v6:
|
||||
:global ScriptUpdatesUrlSuffix "\?h=routeros-v6";
|
||||
|
||||
Then reload the configuration.
|
||||
> ℹ️ **Info**: It is recommended to edit the configuration using the command
|
||||
> line interface. If using Winbox on Windows OS, the line endings may be
|
||||
> missing. To fix this run:
|
||||
> `/system/script/set source=[ :tocrlf [ get global-config-overlay source ] ] global-config-overlay;`
|
||||
|
||||
Updating scripts
|
||||
----------------
|
||||
|
|
@ -135,7 +190,12 @@ everything is up-to-date it will not produce any output.
|
|||
|
||||
$ScriptInstallUpdate;
|
||||
|
||||

|
||||

|
||||
|
||||
If the update includes news or requires configuration changes a notification
|
||||
is sent - in addition to terminal output and log messages.
|
||||
|
||||

|
||||
|
||||
Adding a script
|
||||
---------------
|
||||
|
|
@ -145,91 +205,143 @@ a comma separated list of script names.
|
|||
|
||||
$ScriptInstallUpdate check-certificates,check-routeros-update;
|
||||
|
||||

|
||||

|
||||
|
||||
Scheduler and events
|
||||
--------------------
|
||||
|
||||
Most scripts are designed to run regularly from
|
||||
[scheduler](https://wiki.mikrotik.com/wiki/Manual:System/Scheduler). We just
|
||||
added `check-routeros-update`, so let's run it every hour to make sure not to
|
||||
[scheduler ↗️](https://wiki.mikrotik.com/wiki/Manual:System/Scheduler). We just
|
||||
added `check-routeros-update`, so let's run it daily to make sure not to
|
||||
miss an update.
|
||||
|
||||
/ system scheduler add name="check-routeros-update" interval=1h on-event="/ system script run check-routeros-update;";
|
||||
/system/scheduler/add name="check-routeros-update" interval=1d start-time=startup on-event="/system/script/run check-routeros-update;";
|
||||
|
||||

|
||||

|
||||
|
||||
Some events can run a script. If you want your DHCP hostnames to be available
|
||||
in DNS use `dhcp-to-dns` with the events from dhcp server. For a regular
|
||||
cleanup add a scheduler entry.
|
||||
|
||||
$ScriptInstallUpdate dhcp-to-dns,lease-script;
|
||||
/ ip dhcp-server set lease-script=lease-script [ find ];
|
||||
/ system scheduler add name="dhcp-to-dns" interval=5m on-event="/ system script run dhcp-to-dns;";
|
||||
/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;";
|
||||
|
||||

|
||||

|
||||
|
||||
There's much more to explore... Have fun!
|
||||
|
||||
Available scripts
|
||||
-----------------
|
||||
|
||||
* [Find and remove access list duplicates](doc/accesslist-duplicates.md)
|
||||
* [Upload backup to Mikrotik cloud](doc/backup-cloud.md)
|
||||
* [Send backup via e-mail](doc/backup-email.md)
|
||||
* [Save configuration to fallback partition](doc/backup-partition.md)
|
||||
* [Upload backup to server](doc/backup-upload.md)
|
||||
* [Download packages for CAP upgrade from CAPsMAN](doc/capsman-download-packages.md)
|
||||
* [Run rolling CAP upgrades from CAPsMAN](doc/capsman-rolling-upgrade.md)
|
||||
* [Renew locally issued certificates](doc/certificate-renew-issued.md)
|
||||
* [Renew certificates and notify on expiration](doc/check-certificates.md)
|
||||
* [Notify about health state](doc/check-health.md)
|
||||
* [Notify on LTE firmware upgrade](doc/check-lte-firmware-upgrade.md)
|
||||
* [Notify on RouterOS update](doc/check-routeros-update.md)
|
||||
* [Collect MAC addresses in wireless access list](doc/collect-wireless-mac.md)
|
||||
* [Use wireless network with daily psk](doc/daily-psk.md)
|
||||
* [Comment DHCP leases with info from access list](doc/dhcp-lease-comment.md)
|
||||
* [Create DNS records for DHCP leases](doc/dhcp-to-dns.md)
|
||||
* [Automatically upgrade firmware and reboot](doc/firmware-upgrade-reboot.md)
|
||||
* [Wait for global functions und modules](doc/global-wait.md)
|
||||
* [Send GPS position to server](doc/gps-track.md)
|
||||
* [Use WPA2 network with hotspot credentials](doc/hotspot-to-wpa.md)
|
||||
* [Create DNS records for IPSec peers](doc/ipsec-to-dns.md)
|
||||
* [Update configuration on IPv6 prefix change](doc/ipv6-update.md)
|
||||
* [Manage IP addresses with bridge status](doc/ip-addr-bridge.md)
|
||||
* [Run other scripts on DHCP lease](doc/lease-script.md)
|
||||
* [Manage LEDs dark mode](doc/leds-mode.md)
|
||||
* [Forward log messages via notification](doc/log-forward.md)
|
||||
* [Mode button with multiple presses](doc/mode-button.md)
|
||||
* [Manage DNS and DoH servers from netwatch](doc/netwatch-dns.md)
|
||||
* [Notify on host up and down](doc/netwatch-notify.md)
|
||||
* [Manage remote logging](doc/netwatch-syslog.md)
|
||||
* [Visualize OSPF state via LEDs](doc/ospf-to-leds.md)
|
||||
* [Manage system update](doc/packages-update.md)
|
||||
* [Run scripts on ppp connection](doc/ppp-on-up.md)
|
||||
* [Rotate NTP servers](doc/rotate-ntp.md)
|
||||
* [Act on received SMS](doc/sms-action.md)
|
||||
* [Forward received SMS](doc/sms-forward.md)
|
||||
* [Import SSH keys](doc/ssh-keys-import.md)
|
||||
* [Play Super Mario theme](doc/super-mario-theme.md)
|
||||
* [Install LTE firmware upgrade](doc/unattended-lte-firmware-upgrade.md)
|
||||
* [Update GRE configuration with dynamic addresses](doc/update-gre-address.md)
|
||||
* [Update tunnelbroker configuration](doc/update-tunnelbroker.md)
|
||||
|
||||
[comment]: # (TODO: currently undocumented)
|
||||
[comment]: # (* learn-mac-based-vlan)
|
||||
[comment]: # (* manage-umts)
|
||||
* [Find and remove access list duplicates](doc/accesslist-duplicates.md) (`accesslist-duplicates`)
|
||||
* [Upload backup to Mikrotik cloud](doc/backup-cloud.md) (`backup-cloud`)
|
||||
* [Send backup via e-mail](doc/backup-email.md) (`backup-email`)
|
||||
* [Save configuration to fallback partition](doc/backup-partition.md) (`backup-partition`)
|
||||
* [Upload backup to server](doc/backup-upload.md) (`backup-upload`)
|
||||
* [Download packages for CAP upgrade from CAPsMAN](doc/capsman-download-packages.md) (`capsman-download-packages`)
|
||||
* [Run rolling CAP upgrades from CAPsMAN](doc/capsman-rolling-upgrade.md) (`capsman-rolling-upgrade`)
|
||||
* [Renew locally issued certificates](doc/certificate-renew-issued.md) (`certificate-renew-issued`)
|
||||
* [Renew certificates and notify on expiration](doc/check-certificates.md) (`check-certificates`)
|
||||
* [Notify about health state](doc/check-health.md) (`check-health`)
|
||||
* [Notify on LTE firmware upgrade](doc/check-lte-firmware-upgrade.md) (`check-lte-firmware-upgrade`)
|
||||
* [Check perpetual license on CHR](doc/check-perpetual-license.md) (`check-perpetual-license`)
|
||||
* [Notify on RouterOS update](doc/check-routeros-update.md) (`check-routeros-update`)
|
||||
* [Collect MAC addresses in wireless access list](doc/collect-wireless-mac.md) (`collect-wireless-mac`)
|
||||
* [Use wireless network with daily psk](doc/daily-psk.md) (`daily-psk`)
|
||||
* [Comment DHCP leases with info from access list](doc/dhcp-lease-comment.md) (`dhcp-lease-comment`)
|
||||
* [Create DNS records for DHCP leases](doc/dhcp-to-dns.md) (`dhcp-to-dns`)
|
||||
* [Automatically upgrade firmware and reboot](doc/firmware-upgrade-reboot.md) (`firmware-upgrade-reboot`)
|
||||
* [Download, import and update firewall address-lists](doc/fw-addr-lists.md) (`fw-addr-lists`)
|
||||
* [Wait for global functions und modules](doc/global-wait.md) (`global-wait`)
|
||||
* [Send GPS position to server](doc/gps-track.md) (`gps-track`)
|
||||
* [Use WPA network with hotspot credentials](doc/hotspot-to-wpa.md) (`hotspot-to-wpa` & `hotspot-to-wpa-cleanup`)
|
||||
* [Create DNS records for IPSec peers](doc/ipsec-to-dns.md) (`ipsec-to-dns`)
|
||||
* [Update configuration on IPv6 prefix change](doc/ipv6-update.md) (`ipv6-update`)
|
||||
* [Manage IP addresses with bridge status](doc/ip-addr-bridge.md) (`ip-addr-bridge`)
|
||||
* [Run other scripts on DHCP lease](doc/lease-script.md) (`lease-script`)
|
||||
* [Manage LEDs dark mode](doc/leds-mode.md) (`leds-day-mode`, `leds-night-mode` & `leds-toggle-mode`)
|
||||
* [Forward log messages via notification](doc/log-forward.md) (`log-forward`)
|
||||
* [Mode button with multiple presses](doc/mode-button.md) (`mode-button`)
|
||||
* [Manage DNS and DoH servers from netwatch](doc/netwatch-dns.md) (`netwatch-dns`)
|
||||
* [Notify on host up and down](doc/netwatch-notify.md) (`netwatch-notify`)
|
||||
* [Visualize OSPF state via LEDs](doc/ospf-to-leds.md) (`ospf-to-leds`)
|
||||
* [Manage system update](doc/packages-update.md) (`packages-update`)
|
||||
* [Run scripts on ppp connection](doc/ppp-on-up.md) (`ppp-on-up`)
|
||||
* [Act on received SMS](doc/sms-action.md) (`sms-action`)
|
||||
* [Forward received SMS](doc/sms-forward.md) (`sms-forward`)
|
||||
* [Play Super Mario theme](doc/super-mario-theme.md) (`super-mario-theme`)
|
||||
* [Chat with your router and send commands via Telegram bot](doc/telegram-chat.md) (`telegram-chat`)
|
||||
* [Install LTE firmware upgrade](doc/unattended-lte-firmware-upgrade.md) (`unattended-lte-firmware-upgrade`)
|
||||
* [Update GRE configuration with dynamic addresses](doc/update-gre-address.md) (`update-gre-address`)
|
||||
* [Update tunnelbroker configuration](doc/update-tunnelbroker.md) (`update-tunnelbroker`)
|
||||
|
||||
Available modules
|
||||
-----------------
|
||||
|
||||
* [Manage ports in bridge](doc/mod/bridge-port-to.md)
|
||||
* [Manage VLANs on bridge ports](doc/mod/bridge-port-vlan.md)
|
||||
* [Inspect variables](doc/mod/inspectvar.md)
|
||||
* [IP address calculation](doc/mod/ipcalc.md)
|
||||
* [Send notifications via Matrix](doc/mod/notification-matrix.md)
|
||||
* [Send notifications via Telegram](doc/mod/notification-telegram.md)
|
||||
* [Download script and run it once](doc/mod/scriptrunonce.md)
|
||||
* [Manage ports in bridge](doc/mod/bridge-port-to.md) (`mod/bridge-port-to`)
|
||||
* [Manage VLANs on bridge ports](doc/mod/bridge-port-vlan.md) (`mod/bridge-port-vlan`)
|
||||
* [Inspect variables](doc/mod/inspectvar.md) (`mod/inspectvar`)
|
||||
* [IP address calculation](doc/mod/ipcalc.md) (`mod/ipcalc`)
|
||||
* [Send notifications via e-mail](doc/mod/notification-email.md) (`mod/notification-email`)
|
||||
* [Send notifications via Gotify](doc/mod/notification-gotify.md) (`mod/notification-gotify`)
|
||||
* [Send notifications via Matrix](doc/mod/notification-matrix.md) (`mod/notification-matrix`)
|
||||
* [Send notifications via Ntfy](doc/mod/notification-ntfy.md) (`mod/notification-ntfy`)
|
||||
* [Send notifications via Telegram](doc/mod/notification-telegram.md) (`mod/notification-telegram`)
|
||||
* [Download script and run it once](doc/mod/scriptrunonce.md) (`mod/scriptrunonce`)
|
||||
* [Import ssh keys for public key authentication](doc/mod/ssh-keys-import.md) (`mod/ssh-keys-import`)
|
||||
|
||||
Installing custom scripts & modules
|
||||
-----------------------------------
|
||||
|
||||
My scripts cover a lot of use cases, but you may have your own ones. You can
|
||||
still use my scripts to manage and deploy yours, by specifying `base-url`
|
||||
(and `url-suffix`) for each script.
|
||||
|
||||
This will fetch and install a script `hello-world.rsc` from the given url:
|
||||
|
||||
$ScriptInstallUpdate hello-world "base-url=https://git.eworm.de/cgit/routeros-scripts-custom/plain/";
|
||||
|
||||

|
||||
|
||||
For a script to be considered valid it has to begin with a *magic token*.
|
||||
Have a look at [any script](README.d/hello-world.rsc) and copy the first line
|
||||
without modification.
|
||||
|
||||
Starting a script's name with `mod/` makes it a module and it is run
|
||||
automatically by `global-functions`.
|
||||
|
||||
### Linked custom scripts & modules
|
||||
|
||||
> ⚠️ **Warning**: These links are being provided for your convenience only;
|
||||
> they do not constitute an endorsement or an approval by me. I bear no
|
||||
> responsibility for the accuracy, legality or content of the external site
|
||||
> or for that of subsequent links. Contact the external site for answers to
|
||||
> questions regarding its content.
|
||||
|
||||
* [Hello World](https://git.eworm.de/cgit/routeros-scripts-custom/about/doc/hello-world.md)
|
||||
(This is a demo script to show how the linking to external documentation
|
||||
will be done.)
|
||||
|
||||
> ℹ️ **Info**: You have your own set of scripts and/or modules and want these
|
||||
> to be listed here? There should be a general info page that links here,
|
||||
> and documentation for each script. You can start by cloning my
|
||||
> [Custom RouterOS-Scripts](https://git.eworm.de/cgit/routeros-scripts-custom/)
|
||||
> (or fork on [GitHub](https://github.com/eworm-de/routeros-scripts-custom)
|
||||
> or [GitLab](https://gitlab.com/eworm-de/routeros-scripts-custom)) and make
|
||||
> your changes. Then please [get in contact](#patches-issues-and-whishlist)...
|
||||
|
||||
Removing a script
|
||||
-----------------
|
||||
|
||||
There is no specific function for script removal. Just remove it from
|
||||
configuration...
|
||||
|
||||
/system/script/remove to-be-removed;
|
||||
|
||||

|
||||
|
||||
Possibly a scheduler and other configuration has to be removed as well.
|
||||
|
||||
Installing custom scripts & modules
|
||||
-----------------------------------
|
||||
|
|
@ -256,9 +368,9 @@ automatically by `global-functions`.
|
|||
Contact
|
||||
-------
|
||||
|
||||
We have a Telegram Group [RouterOS-Scripts](https://t.me/routeros_scripts)!
|
||||
We have a Telegram Group [RouterOS-Scripts ↗️](https://t.me/routeros_scripts)!
|
||||
|
||||

|
||||
[](https://t.me/routeros_scripts)
|
||||
|
||||
Get help, give feedback or just chat - but do not expect free professional
|
||||
support!
|
||||
|
|
@ -266,21 +378,23 @@ support!
|
|||
Contribute
|
||||
----------
|
||||
|
||||
Thanks a lot for [past contributions](CONTRIBUTIONS.md)!
|
||||
Thanks a lot for [past contributions](CONTRIBUTIONS.md)! ❤️
|
||||
|
||||
### Patches, issues and whishlist
|
||||
|
||||
Feel free to contact me via e-mail or open an
|
||||
[issue at github](https://github.com/eworm-de/routeros-scripts/issues).
|
||||
[issue](https://github.com/eworm-de/routeros-scripts/issues) or
|
||||
[pull request](https://github.com/eworm-de/routeros-scripts/pulls)
|
||||
at github.
|
||||
|
||||
### 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 to
|
||||
[donate with PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J).
|
||||
[donate with PayPal ↗️](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)
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
|
||||
|
||||
Thanks a lot for your support!
|
||||
|
||||
|
|
@ -297,15 +411,33 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
[GNU General Public License](COPYING.md) for more details.
|
||||
|
||||
Disclaimer on external links
|
||||
----------------------------
|
||||
|
||||
Our website contains links to the websites of third parties ("external
|
||||
links"). As the content of these websites is not under our control, we
|
||||
cannot assume any liability for such external content. In all cases, the
|
||||
provider of information of the linked websites is liable for the content
|
||||
and accuracy of the information provided. At the point in time when the
|
||||
links were placed, no infringements of the law were recognisable to us.
|
||||
As soon as an infringement of the law becomes known to us, we will
|
||||
immediately remove the link in question.
|
||||
|
||||
> 💡️ **Hint**: All external links are marked with an arrow pointing
|
||||
> diagonally in an up-right (or north-east) direction (↗️).
|
||||
|
||||
Upstream
|
||||
--------
|
||||
|
||||
URL:
|
||||
[GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts)
|
||||
[rsc.eworm.de](https://rsc.eworm.de/)
|
||||
|
||||
Mirror:
|
||||
[eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/)
|
||||
[GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts)
|
||||
[](https://rsc.eworm.de/)
|
||||
|
||||
### Code hosting
|
||||
|
||||
* [git.eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/)
|
||||
* [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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue