mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-08-01 08:44:32 +02:00
Merge branch 'documentation'
This commit is contained in:
commit
54a8f2839d
90 changed files with 1717 additions and 55 deletions
44
README.md
44
README.md
|
@ -133,6 +133,50 @@ cleanup add a scheduler entry.
|
||||||
|
|
||||||
There's much more to explore... Have fun!
|
There's much more to explore... Have fun!
|
||||||
|
|
||||||
|
Available Scripts
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
* [Find and remove access list duplicates](doc/accesslist-duplicates.md)
|
||||||
|
* [Manage ports in bridge](doc/bridge-port.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)
|
||||||
|
* [Upload backup to Mikrotik cloud](doc/cloud-backup.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)
|
||||||
|
* [Send backup via e-mail](doc/email-backup.md)
|
||||||
|
* [Wait for configuration und functions](doc/global-wait.md)
|
||||||
|
* [Send GPS position to server](doc/gps-track.md)
|
||||||
|
* [Use WPA2 network with hotspot credentials](doc/hotspot-to-wpa.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)
|
||||||
|
* [Mode botton with multiple presses](doc/mode-button.md)
|
||||||
|
* [Notify on host up and down](doc/netwatch-notify.md)
|
||||||
|
* [Manage remote logging](doc/netwatch-syslog.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)
|
||||||
|
* [Upload backup to server](doc/upload-backup.md)
|
||||||
|
|
||||||
|
[comment]: # (TODO: currently undocumented)
|
||||||
|
[comment]: # (* learn-mac-based-vlan)
|
||||||
|
[comment]: # (* manage-umts)
|
||||||
|
|
||||||
Contribute
|
Contribute
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# print duplicate antries in wireless access list
|
# print duplicate antries in wireless access list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
|
||||||
#
|
#
|
||||||
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
||||||
# !! or 'interface wireless'!
|
# !! or 'interface wireless'!
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# reset bridge ports to default bridge
|
# reset bridge ports to default bridge
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/bridge-port.md
|
||||||
|
|
||||||
:global BridgePortTo;
|
:global BridgePortTo;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# toggle bridge ports between default and alt bridge
|
# toggle bridge ports between default and alt bridge
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/bridge-port.md
|
||||||
|
|
||||||
:global BridgePortTo;
|
:global BridgePortTo;
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
#
|
#
|
||||||
# download and cleanup packages for CAP installation from CAPsMAN
|
# download and cleanup packages for CAP installation from CAPsMAN
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-download-packages.md
|
||||||
|
|
||||||
:global CleanFilePath;
|
:global CleanFilePath;
|
||||||
:global DownloadPackage;
|
:global DownloadPackage;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
#
|
#
|
||||||
# upgrade CAPs one after another
|
# upgrade CAPs one after another
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-rolling-upgrade.md
|
||||||
|
|
||||||
:global ScriptLock;
|
:global ScriptLock;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# renew locally issued certificates
|
# renew locally issued certificates
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/certificate-renew-issued.md
|
||||||
|
|
||||||
:global CertIssuedExportPass;
|
:global CertIssuedExportPass;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# check for certificate validity
|
# check for certificate validity
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-certificates.md
|
||||||
|
|
||||||
:global CertRenewPass;
|
:global CertRenewPass;
|
||||||
:global CertRenewUrl;
|
:global CertRenewUrl;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# check for RouterOS health state
|
# check for RouterOS health state
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-health.md
|
||||||
|
|
||||||
:global CheckHealthLast;
|
:global CheckHealthLast;
|
||||||
:global CheckHealthTemperature;
|
:global CheckHealthTemperature;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# check for LTE firmware upgrade, send notification
|
# check for LTE firmware upgrade, send notification
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-lte-firmware-upgrade.md
|
||||||
|
|
||||||
:global Identity;
|
:global Identity;
|
||||||
:global SentLteFirmwareUpgradeNotification;
|
:global SentLteFirmwareUpgradeNotification;
|
||||||
|
@ -13,7 +14,7 @@
|
||||||
:local IntName [ / interface lte get $Interface name ];
|
:local IntName [ / interface lte get $Interface name ];
|
||||||
:do {
|
:do {
|
||||||
:local Firmware [ / interface lte firmware-upgrade $Interface once as-value ];
|
:local Firmware [ / interface lte firmware-upgrade $Interface once as-value ];
|
||||||
|
|
||||||
:if ($SentLteFirmwareUpgradeNotification = ($Firmware->"latest")) do={
|
:if ($SentLteFirmwareUpgradeNotification = ($Firmware->"latest")) do={
|
||||||
:log debug ("Already sent the LTE firmware upgrade notification for version " . \
|
:log debug ("Already sent the LTE firmware upgrade notification for version " . \
|
||||||
($Firmware->"latest") . ".");
|
($Firmware->"latest") . ".");
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# check for RouterOS update, send notification and/or install
|
# check for RouterOS update, send notification and/or install
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-routeros-update.md
|
||||||
|
|
||||||
:global Identity;
|
:global Identity;
|
||||||
:global SafeUpdateUrl;
|
:global SafeUpdateUrl;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# upload backup to MikroTik cloud
|
# upload backup to MikroTik cloud
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/cloud-backup.md
|
||||||
|
|
||||||
:global BackupPassword;
|
:global BackupPassword;
|
||||||
:global Identity;
|
:global Identity;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# collect wireless mac adresses in access list
|
# collect wireless mac adresses in access list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
|
||||||
#
|
#
|
||||||
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
||||||
# !! or 'interface wireless'!
|
# !! or 'interface wireless'!
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
#
|
#
|
||||||
# update daily PSK (pre shared key)
|
# update daily PSK (pre shared key)
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
|
||||||
#
|
#
|
||||||
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
||||||
# !! or 'interface wireless'!
|
# !! or 'interface wireless'!
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
|
||||||
#
|
#
|
||||||
# !! Do not edit this file, it is generated from template!
|
# !! Do not edit this file, it is generated from template!
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# update dhcp-server lease comment with infos from access-list
|
# update dhcp-server lease comment with infos from access-list
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
|
||||||
#
|
#
|
||||||
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
||||||
# !! or 'interface wireless'!
|
# !! or 'interface wireless'!
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# check DHCP leases and add/remove/update DNS entries
|
# check DHCP leases and add/remove/update DNS entries
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-to-dns.md
|
||||||
|
|
||||||
:global Domain;
|
:global Domain;
|
||||||
:global HostNameInZone;
|
:global HostNameInZone;
|
||||||
|
|
49
doc/accesslist-duplicates.md
Normal file
49
doc/accesslist-duplicates.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
Find and remove access list duplicates
|
||||||
|
======================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is supposed to run interactively to find and remove duplicate
|
||||||
|
entries in wireless access list.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Depending on whether you use CAPsMAN (`/ caps-man`) or local wireless
|
||||||
|
interface (`/ interface wireless`) you need to install a different script.
|
||||||
|
|
||||||
|
For CAPsMAN:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate accesslist-duplicates.capsman;
|
||||||
|
|
||||||
|
For local interface:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate accesslist-duplicates.local;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Run this script from a terminal:
|
||||||
|
|
||||||
|
[admin@kalyke] > / system script run accesslist-duplicates.local
|
||||||
|
Flags: X - disabled
|
||||||
|
0 ;;; First entry with identical mac address...
|
||||||
|
mac-address=00:11:22:33:44:55 interface=any signal-range=-120..120 allow-signal-out-of-range=10s authentication=yes forwarding=yes ap-tx-limit=0 client-tx-limit=0 private-algo=none private-key="" private-pre-shared-key="" management-protection-key="" vlan-mode=default vlan-id=1
|
||||||
|
|
||||||
|
1 ;;; Second entry with identical mac address...
|
||||||
|
mac-address=00:11:22:33:44:55 interface=any signal-range=-120..120 allow-signal-out-of-range=10s authentication=yes forwarding=yes ap-tx-limit=0 client-tx-limit=0 private-algo=none private-key="" private-pre-shared-key="" management-protection-key="" vlan-mode=default vlan-id=1
|
||||||
|
|
||||||
|
Numeric id to remove, any key to skip!
|
||||||
|
Removing numeric id 1...
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Collect MAC addresses in wireless access list](collect-wireless-mac.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
84
doc/bridge-port.md
Normal file
84
doc/bridge-port.md
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
Manage ports in bridge
|
||||||
|
======================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
These scripts are supposed to handle interfaces and switching them from
|
||||||
|
one bridge to another.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the scripts:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate bridge-port-to-default,bridge-port-toggle;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to ports' comments (`/ interface bridge port`).
|
||||||
|
|
||||||
|
/ interface bridge port add bridge=br-guest comment="default=dhcp-client, alt=br-guest" disabled=yes interface=en1;
|
||||||
|
/ interface bridge port add bridge=br-intern comment="default=br-intern, alt=br-guest" interface=en2;
|
||||||
|
/ interface bridge port add bridge=br-guest comment="default=br-guest, extra=br-extra" interface=en3;
|
||||||
|
|
||||||
|
Also dhcp client can be handled:
|
||||||
|
|
||||||
|
/ ip dhcp-client add comment="toggle with bridge port" disabled=no interface=en1;
|
||||||
|
|
||||||
|
There is also global configuration:
|
||||||
|
|
||||||
|
* `BridgePortTo`: specify the configuration to be applied by default
|
||||||
|
|
||||||
|
Install [global-wait](global-wait.md) and add a scheduler to start with
|
||||||
|
default setup on system startup:
|
||||||
|
|
||||||
|
/ system scheduler add name=bridge-port-to-default on-event="/ system script { run global-wait; run bridge-port-to-default; }" start-time=startup;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
The usage examples show what happens with the configuration from above.
|
||||||
|
|
||||||
|
Running the script `bridge-port-to-default` applies all configuration given
|
||||||
|
with `default=`:
|
||||||
|
|
||||||
|
/ system script run bridge-port-to-default;
|
||||||
|
|
||||||
|
For the three interfaces we get this configuration:
|
||||||
|
|
||||||
|
* The special value `dhcp-client` enables the dhcp client for interface `en1`. The bridge port entry is disabled.
|
||||||
|
* Interface `en2` is put in bridge `br-intern`.
|
||||||
|
* Interface `en3` is put in bridge `br-guest`.
|
||||||
|
|
||||||
|
Running the script `bridge-port-toggle` toggles to configuration given
|
||||||
|
with `alt=`:
|
||||||
|
|
||||||
|
/ system script run bridge-port-toggle;
|
||||||
|
|
||||||
|
* Interface `en1` is put in bridge `br-guest`, dhcp client for the interface is disabled.
|
||||||
|
* Interface `en2` is put in bridge `br-guest`.
|
||||||
|
* Interface `en3` is unchanged, stays in bridge `br-guest`.
|
||||||
|
|
||||||
|
Running the script `bridge-port-toggle` again toggles back to configuration
|
||||||
|
given with `default=`.
|
||||||
|
|
||||||
|
More configuration can be loaded by setting `BridgePortTo`:
|
||||||
|
|
||||||
|
:set BridgePortTo "extra";
|
||||||
|
/ system script run bridge-port-to-default;
|
||||||
|
|
||||||
|
* Interfaces `en1` and `en2` are unchanged.
|
||||||
|
* Interface `en3` is put in bridge `br-intern`.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Wait for configuration und functions](global-wait.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
51
doc/capsman-download-packages.md
Normal file
51
doc/capsman-download-packages.md
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
Download packages for CAP upgrade from CAPsMAN
|
||||||
|
=============================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
CAPsMAN can upgrate CAP devices. If CAPsMAN device and CAP device(s) are
|
||||||
|
differnet architecture you need to store packages for CAP device's
|
||||||
|
architecture on local storage.
|
||||||
|
|
||||||
|
This script automatically downloads these packages.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script on CAPsMAN device:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate capsman-download-packages;
|
||||||
|
|
||||||
|
Optionally create a scheduler to run after startup, with a delay to ensure
|
||||||
|
internet connectivity is given:
|
||||||
|
|
||||||
|
/ system scheduler add name=capsman-download-packages on-event=":delay 2m; / system script run capsman-download-packages;" start-time=startup;
|
||||||
|
|
||||||
|
Only packages available in older version are downloaded. For initial setup
|
||||||
|
place the required packages to CAPsMAN package path (see
|
||||||
|
`/ caps-man manager`).
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Run the script manually:
|
||||||
|
|
||||||
|
/ system script run capsman-download-packages;
|
||||||
|
|
||||||
|
... or from scheduler.
|
||||||
|
|
||||||
|
After package download all out-of-date CAP devices are upgraded automatically.
|
||||||
|
For a rolling upgrade install extra script
|
||||||
|
[capsman-rolling-upgrade](capsman-rolling-upgrade.md).
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Run rolling CAP upgrades from CAPsMAN](capsman-rolling-upgrade.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
39
doc/capsman-rolling-upgrade.md
Normal file
39
doc/capsman-rolling-upgrade.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
Run rolling CAP upgrades from CAPsMAN
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
CAPsMAN can upgrate CAP devices. This script runs a rolling upgrade for
|
||||||
|
out-of-date CAP devices. The idea is to have just a fraction of devices
|
||||||
|
reboot at a time, having the others to serve wireless connectivity.
|
||||||
|
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate capsman-rolling-upgrade;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
This script is intended as an add-on to
|
||||||
|
[capsman-download-packages](capsman-download-packages.md), being invoked by
|
||||||
|
that script when required.
|
||||||
|
|
||||||
|
Alternatively run it manually:
|
||||||
|
|
||||||
|
/ system script run capsman-rolling-upgrade;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Download packages for CAP upgrade from CAPsMAN](capsman-download-packages.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
47
doc/certificate-renew-issued.md
Normal file
47
doc/certificate-renew-issued.md
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
Renew locally issued certificates
|
||||||
|
=================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script renews certificates issued by a local certificate authority (CA).
|
||||||
|
Optionally the certificates are exported with individual passphrases for
|
||||||
|
easy pick-up.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate certificate-renew-issued;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, there is just one
|
||||||
|
parameter:
|
||||||
|
|
||||||
|
* `CertRenewPass`: an array holding individual passphrases for certificates
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Run the script to renew certificates issued from a local CA.
|
||||||
|
|
||||||
|
/ system script run certificate-renew-issued;
|
||||||
|
|
||||||
|
Only scripts with a remaining lifetime of three weeks or less are renewed.
|
||||||
|
The old certificate is revoked automatically. If a passphrase for a specific
|
||||||
|
certificate is given in `CertRenewPass` the certificate is exported and
|
||||||
|
PKCS#12 file (`cert-issued/CN.p12`) can be found on device's storage.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Renew certificates and notify on expiration](check-certificates.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
52
doc/check-certificates.md
Normal file
52
doc/check-certificates.md
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
Renew certificates and notify on expiration
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script tries to download and renew certificates, then notifies about
|
||||||
|
certificates that are still about to expire.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate check-certificates;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The expiry notifications just require notification settings for e-mail and
|
||||||
|
telegram.
|
||||||
|
|
||||||
|
For automatic download and renewal of certificates you need configuration
|
||||||
|
in `global-config-overlay`, these are the parameters:
|
||||||
|
|
||||||
|
* `CertRenewPass`: an array of passphrases to try
|
||||||
|
* `CertRenewUrl`: the url to download certificates from
|
||||||
|
|
||||||
|
Certificates on the web server should be named `CN.pem` (`PEM` format) or
|
||||||
|
`CN.p12` (`PKCS#12` format).
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Just run the script:
|
||||||
|
|
||||||
|
/ system script run check-certificates;
|
||||||
|
|
||||||
|
... or create a scheduler for periodic execution:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1d name=check-certificates on-event="/ system script run check-certificates;" start-time=startup;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Renew locally issued certificates](certificate-renew-issued.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
43
doc/check-health.md
Normal file
43
doc/check-health.md
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
Notify about health state
|
||||||
|
=========================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is run from scheduler periodically, sending notification on
|
||||||
|
health related events:
|
||||||
|
|
||||||
|
* voltage jumps up or down more than configured threshold
|
||||||
|
* power supply failed or recovered
|
||||||
|
* temperature is above or below threshold
|
||||||
|
|
||||||
|
Note that bad initial state will not trigger an event.
|
||||||
|
|
||||||
|
Only sensors available in hardware can be checked. See what your
|
||||||
|
hardware supports:
|
||||||
|
|
||||||
|
/ system health print;
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script and create a scheduler:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate check-health;
|
||||||
|
/ system scheduler add interval=1m name=check-health on-event="/ system script run check-health;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, These are the parameters:
|
||||||
|
|
||||||
|
* `CheckHealthTemperature`: an array specifying temperature thresholds for sensors
|
||||||
|
* `CheckHealthVoltagePercent`: percentage value to trigger voltage jumps
|
||||||
|
|
||||||
|
Also notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
41
doc/check-lte-firmware-upgrade.md
Normal file
41
doc/check-lte-firmware-upgrade.md
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
Notify on LTE firmware upgrade
|
||||||
|
==============================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is run from scheduler periodically, checking for LTE firmware
|
||||||
|
upgrades. Currently supported LTE hardware:
|
||||||
|
|
||||||
|
* R11e-LTE
|
||||||
|
* R11e-LTE-US
|
||||||
|
* R11e-4G
|
||||||
|
* R11e-LTE6
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate check-lte-firmware-upgrade;
|
||||||
|
|
||||||
|
... and create a scheduler:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1d name=check-lte-firmware-upgrade on-event="/ system script run check-lte-firmware-upgrade;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Notification setting are required for e-mail and telegram.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Notify on RouterOS update](check-routeros-update.md)
|
||||||
|
* [Install LTE firmware upgrade](unattended-lte-firmware-upgrade.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
55
doc/check-routeros-update.md
Normal file
55
doc/check-routeros-update.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
Notify on RouterOS update
|
||||||
|
=========================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The primary use of this script is to notify about RouterOS updates.
|
||||||
|
|
||||||
|
Run from a terminal you can start the update process or schedule it.
|
||||||
|
|
||||||
|
Centrally managing update process of several devices is possibly by
|
||||||
|
specifying versions safe to be updated on a web server.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate check-routeros-update;
|
||||||
|
|
||||||
|
And add a scheduler for automatic update notification:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1d name=check-routeros-update on-event="/ system script run check-routeros-update;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Configuration is required only if you want to control update process with
|
||||||
|
safe versions from a web server. The configuration goes to
|
||||||
|
`global-config-overlay`, this is the parameter:
|
||||||
|
|
||||||
|
* `SafeUpdateUrl`: url to check for safe update, the channel (`long-term`,
|
||||||
|
`stable` or `testing`) is appended
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Be notified when run from scheduler or run it manually:
|
||||||
|
|
||||||
|
/ system script run check-routeros-update;
|
||||||
|
|
||||||
|
If an update is found you can install it right away.
|
||||||
|
|
||||||
|
Installing script [packages-update](packages-update.md) gives extra options.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Manage system update](packages-update.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
46
doc/cloud-backup.md
Normal file
46
doc/cloud-backup.md
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
Upload backup to Mikrotik cloud
|
||||||
|
===============================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script uploads [binary backup to Mikrotik cloud](https://wiki.mikrotik.com/wiki/Manual:IP/Cloud#Backup).
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate cloud-backup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, this is the only parameter:
|
||||||
|
|
||||||
|
* `BackupPassword`: password to encrypt the backup with
|
||||||
|
|
||||||
|
Also notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Just run the script:
|
||||||
|
|
||||||
|
/ system script run cloud-backup;
|
||||||
|
|
||||||
|
Creating a scheduler may be an option:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1w name=cloud-backup on-event="/ system script run cloud-backup;" start-time=09:20:00;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Send backup via e-mail](email-backup.md)
|
||||||
|
* [Upload backup to server](upload-backup.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
54
doc/collect-wireless-mac.md
Normal file
54
doc/collect-wireless-mac.md
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
Collect MAC addresses in wireless access list
|
||||||
|
=============================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script adds unknown MAC addresses of connected wireless devices to
|
||||||
|
address list. In addition a notification is sent.
|
||||||
|
|
||||||
|
By default the access list entry is disabled, but you can easily enable
|
||||||
|
and modify it to your needs.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Depending on whether you use CAPsMAN (`/ caps-man`) or local wireless
|
||||||
|
interface (`/ interface wireless`) you need to install a different script.
|
||||||
|
|
||||||
|
For CAPsMAN:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate collect-wireless-mac.capsman;
|
||||||
|
|
||||||
|
For local interface:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate collect-wireless-mac.local;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
On first run a disabled access list entry acting as marker (with comment
|
||||||
|
"`--- collected above ---`") is added. Move this entry to define where new
|
||||||
|
entries are to be added.
|
||||||
|
|
||||||
|
Also notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Run this script from a dhcp server as lease-script to collect the MAC
|
||||||
|
address when a new address is leased. You may want to use
|
||||||
|
[lease-script](lease-script.md).
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Comment DHCP leases with info from access list](dhcp-lease-comment.md)
|
||||||
|
* [Create DNS records for DHCP leases](dhcp-to-dns.md)
|
||||||
|
* [Run other scripts on DHCP lease](lease-script.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
56
doc/daily-psk.md
Normal file
56
doc/daily-psk.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
Use wireless network with daily psk
|
||||||
|
===================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is supposed to provide a wifi network which changes the
|
||||||
|
passphrase to a pseudo-random string daily.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install this script and [global-wait](global-wait.md).
|
||||||
|
|
||||||
|
Depending on whether you use CAPsMAN (`/ caps-man`) or local wireless
|
||||||
|
interface (`/ interface wireless`) you need to install a different script.
|
||||||
|
|
||||||
|
For CAPsMAN:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate daily-psk.capsman,global-wait;
|
||||||
|
|
||||||
|
For local interface:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate daily-psk.local,global-wait;
|
||||||
|
|
||||||
|
And add schedulers to run the script:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1d name=daily-psk-nightly on-event="/ system script run daily-psk.local;" start-date=may/23/2018 start-time=03:00:00;
|
||||||
|
/ system scheduler add name=daily-psk-startup on-event=":global WaitTimeSync; / system script { run global-wait; \$WaitTimeSync; run daily-psk.local; }" start-time=startup;
|
||||||
|
|
||||||
|
These will update the passphrase on boot and nightly at 3:00.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, these are the parameters:
|
||||||
|
|
||||||
|
* `DailyPskMatchComment`: pattern to match the wireless access list comment
|
||||||
|
* `DailyPskSecrets`: an array with pseudo random strings
|
||||||
|
|
||||||
|
Then add an access list entry:
|
||||||
|
|
||||||
|
/ interface wireless access-list add comment="Daily PSK" interface=wl-daily private-pre-shared-key="ToBeChangedDaily";
|
||||||
|
|
||||||
|
Also notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Wait for configuration und functions](global-wait.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
49
doc/dhcp-lease-comment.md
Normal file
49
doc/dhcp-lease-comment.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
Comment DHCP leases with info from access list
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script adds comments to dynamic dhcp server leases. Infos are taken
|
||||||
|
from wireless access list.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Depending on whether you use CAPsMAN (`/ caps-man`) or local wireless
|
||||||
|
interface (`/ interface wireless`) you need to install a different script.
|
||||||
|
|
||||||
|
For CAPsMAN:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate dhcp-lease-comment.capsman;
|
||||||
|
|
||||||
|
For local interface:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate dhcp-lease-comment.local;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Infos are taken from wireless access list. Add entries with proper comments
|
||||||
|
there. You may want to use [collect-wireless-mac](collect-wireless-mac.md)
|
||||||
|
to prepare entries.
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Run this script from a dhcp server as lease-script to update the comment
|
||||||
|
just after a new address is leased. You may want to use
|
||||||
|
[lease-script](lease-script.md).
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Collect MAC addresses in wireless access list](collect-wireless-mac.md)
|
||||||
|
* [Create DNS records for DHCP leases](dhcp-to-dns.md)
|
||||||
|
* [Run other scripts on DHCP lease](lease-script.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
42
doc/dhcp-to-dns.md
Normal file
42
doc/dhcp-to-dns.md
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
Create DNS records for DHCP leases
|
||||||
|
==================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script adds (and removes) dns records based on dhcp server leases.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate dhcp-to-dns;
|
||||||
|
|
||||||
|
Then run it from dhcp server as lease script. You may want to use
|
||||||
|
[lease-script](lease-script.md).
|
||||||
|
|
||||||
|
A scheduler cares about cleanup:
|
||||||
|
|
||||||
|
/ system scheduler add interval=15m name=dhcp-to-dns on-event="/ system script run dhcp-to-dns;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, these are the parameters:
|
||||||
|
|
||||||
|
* `Domain`: the domain used for dns records
|
||||||
|
* `HostNameInZone`: whether or not to add the dhcp/dns server's hostname
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Collect MAC addresses in wireless access list](collect-wireless-mac.md)
|
||||||
|
* [Comment DHCP leases with info from access list](dhcp-lease-comment.md)
|
||||||
|
* [Run other scripts on DHCP lease](lease-script.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
52
doc/email-backup.md
Normal file
52
doc/email-backup.md
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
Send backup via e-mail
|
||||||
|
======================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script sends binary backup (`/ system backup save`) and complete
|
||||||
|
configuration export (`/ export terse`) via e-mail.
|
||||||
|
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate email-backup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, These are the parameters:
|
||||||
|
|
||||||
|
* `BackupSendBinary`: whether to send binary backup
|
||||||
|
* `BackupSendExport`: whether to send configuration export
|
||||||
|
* `BackupPassword`: password to encrypt the backup with
|
||||||
|
* `EmailBackupTo`: e-mail address to send to
|
||||||
|
* `EmailBackupCc`: e-mail address(es) to send in copy
|
||||||
|
|
||||||
|
Also valid e-mail settings in `/ tool e-mail` are required to send mails.
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Just run the script:
|
||||||
|
|
||||||
|
/ system script run email-backup;
|
||||||
|
|
||||||
|
Creating a scheduler may be an option:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1w name=email-backup on-event="/ system script run email-backup;" start-time=09:15:00;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Upload backup to Mikrotik cloud](cloud-backup.md)
|
||||||
|
* [Upload backup to server](upload-backup.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
34
doc/global-wait.md
Normal file
34
doc/global-wait.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Wait for configuration und functions
|
||||||
|
====================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The global scripts `global-config`, `global-config-overlay` and
|
||||||
|
`global-functions` are run by scheduler at system startup. Running another
|
||||||
|
script at system startup may result in race condition where configuration
|
||||||
|
and/or function are not yet available. This script is supposed to wait
|
||||||
|
for everything being prepared.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate global-wait;
|
||||||
|
|
||||||
|
... and add it to your scheduler, for example in combination with
|
||||||
|
[bridge-port](bridge-port.md):
|
||||||
|
|
||||||
|
/ system scheduler add name=bridge-port-to-default on-event="/ system script { run global-wait; run bridge-port-to-default; }" start-time=startup;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Manage ports in bridge](bridge-port.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
34
doc/gps-track.md
Normal file
34
doc/gps-track.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Send GPS position to server
|
||||||
|
===========================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is supposed to run periodically from scheduler and send GPS
|
||||||
|
position data to a server for tracking.
|
||||||
|
|
||||||
|
A hardware GPS antenna is required.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate gps-track;
|
||||||
|
|
||||||
|
... and create a scheduler:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1m name=gps-track on-event="/ system script run gps-track;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, the only parameter is:
|
||||||
|
|
||||||
|
* `GpsTrackUrl`: the url to send json data to
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
48
doc/hotspot-to-wpa.md
Normal file
48
doc/hotspot-to-wpa.md
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
Use WPA2 network with hotspot credentials
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RouterOS supports an unlimited number of MAC address specific passphrases
|
||||||
|
for WPA2 encrypted wifi networks via access list. The idea of this script
|
||||||
|
is to transfer hotspot credentials to MAC address specific WPA2 passphrase.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
You need a properly configured hotspot on one (open) SSID and a WP2 enabled
|
||||||
|
SSID with suffix "`-wpa`".
|
||||||
|
|
||||||
|
Then install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate hotspot-to-wpa;
|
||||||
|
|
||||||
|
Configure your hotspot to use this script as `on-login` script:
|
||||||
|
|
||||||
|
/ ip hotspot user profile set on-login=hotspot-to-wpa [ find ];
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
On first run a disabled access list entry acting as marker (with comment
|
||||||
|
"`--- hotspot-to-wpa above ---`") is added. Move this entry to define where new
|
||||||
|
entries are to be added.
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Create hotspot login credentials:
|
||||||
|
|
||||||
|
/ ip hotspot user add add comment="Test User 1" name=user1 password=v3ry;
|
||||||
|
/ ip hotspot user add add comment="Test User 2" name=user2 password=s3cr3t;
|
||||||
|
|
||||||
|
Now let the users connect and login to the hotspot. After that the devices
|
||||||
|
(identified by MAC address) can connect to the WPA2 network, using the
|
||||||
|
passphrase from hotspot credentials.
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
32
doc/ip-addr-bridge.md
Normal file
32
doc/ip-addr-bridge.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
Manage IP addresses with bridge status
|
||||||
|
======================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
With RouterOS an IP address is always active, even if an interface is down.
|
||||||
|
Other venders handle this differently - and sometimes this behavior is
|
||||||
|
expected. This script mimics this behavior.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate ip-addr-bridge;
|
||||||
|
|
||||||
|
... and make it run from scheduler:
|
||||||
|
|
||||||
|
/ system scheduler add name=ip-addr-bridge on-event="/ system script run ip-addr-bridge;" start-time=startup;
|
||||||
|
|
||||||
|
This will disable IP addresses on bridges without at lease one running port.
|
||||||
|
The IP address is enabled if at least one port is running.
|
||||||
|
|
||||||
|
Note that IP addresses on bridges without a single port (acting as loopback
|
||||||
|
interface) are ignored.
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
56
doc/ipv6-update.md
Normal file
56
doc/ipv6-update.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
Update configuration on IPv6 prefix change
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
With changing IPv6 prefix from ISP this script handles to update...
|
||||||
|
|
||||||
|
* ipv6 firewall address-list
|
||||||
|
* dns records
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate ipv6-update;
|
||||||
|
|
||||||
|
Your ISP needs to provide an IPv6 prefix, your device receives it via dhcp:
|
||||||
|
|
||||||
|
/ ipv6 dhcp-client add add-default-route=yes interface=ppp-isp pool-name=isp request=prefix script=ipv6-update;
|
||||||
|
|
||||||
|
Note this already adds this script as `script`. The pool name (here: "`isp`")
|
||||||
|
is important, we need it later.
|
||||||
|
|
||||||
|
Also this expects there is an address assigned from pool to an interface:
|
||||||
|
|
||||||
|
/ ipv6 address add from-pool=isp interface=br-local;
|
||||||
|
|
||||||
|
Sometimes dhcp client is stuck on reconnect and needs to be released.
|
||||||
|
Installing [ppp-on-up](ppp-on-up.md) may solve this.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
An address list entry is updated with current prefix and can be used in
|
||||||
|
firewall rules, comment has to be "`ipv6-pool-`" and actual pool name:
|
||||||
|
|
||||||
|
/ ipv6 firewall address-list add address=2003:cf:2f0f:de00::/56 comment=ipv6-pool-isp list=extern;
|
||||||
|
|
||||||
|
Static DNS records need a special comment to be updated. Again it has to
|
||||||
|
start with "`ipv6-pool-`" and actual pool name, followed by a comma,
|
||||||
|
"`interface=`" and the name of interface this address is connected to:
|
||||||
|
|
||||||
|
/ ip dns static add address=2003:cf:2f0f:de00:1122:3344:5566:7788 comment="ipv6-pool-isp, interface=br-local" name=test.example.com ttl=15m;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Run scripts on ppp connection](ppp-on-up.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
36
doc/lease-script.md
Normal file
36
doc/lease-script.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
Run other scripts on DHCP lease
|
||||||
|
===============================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is supposed to run from dhcp server as lease script. Currently
|
||||||
|
it does:
|
||||||
|
|
||||||
|
* run [dhcp-to-dns](dhcp-to-dns.md)
|
||||||
|
* run [collect-wireless-mac](collect-wireless-mac.md)
|
||||||
|
* run [dhcp-lease-comment](dhcp-lease-comment.md)
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate lease-script;
|
||||||
|
|
||||||
|
... and add it as `lease-script` to your dhcp server:
|
||||||
|
|
||||||
|
/ ip dhcp-server set lease-script=lease-script [ find ];
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Collect MAC addresses in wireless access list](collect-wireless-mac.md)
|
||||||
|
* [Comment DHCP leases with info from access list](dhcp-lease-comment.md)
|
||||||
|
* [Create DNS records for DHCP leases](dhcp-to-dns.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
50
doc/leds-mode.md
Normal file
50
doc/leds-mode.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
Manage LEDs dark mode
|
||||||
|
=====================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
These scripts control LEDs mode and allow to run your device
|
||||||
|
completely dark. Hardware support for dark mode is required.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the scripts:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate leds-day-mode,leds-night-mode,leds-toggle-mode;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
To switch the device to dark mode:
|
||||||
|
|
||||||
|
/ system script run leds-night-mode;
|
||||||
|
|
||||||
|
... and back to normal mode:
|
||||||
|
|
||||||
|
/ system script run leds-day-mode;
|
||||||
|
|
||||||
|
To toggle between the two modes:
|
||||||
|
|
||||||
|
/ system script run leds-toggle-mode;
|
||||||
|
|
||||||
|
Add these schedulers to switch to dark mode in the evening and back to
|
||||||
|
normal mode in the morning:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1d name=leds-day-mode on-event="/ system script run leds-day-mode;" start-time=07:00:00;
|
||||||
|
/ system scheduler add interval=1d name=leds-night-mode on-event="/ system script run leds-night-mode;" start-time=21:00:00;
|
||||||
|
|
||||||
|
The script `leds-toggle-mode` can be used from [mode button](mode-button.md)
|
||||||
|
to toggle mode.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Mode botton with multiple presses](mode-button.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
40
doc/mode-button.md
Normal file
40
doc/mode-button.md
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
Mode botton with multiple presses
|
||||||
|
=================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
These scripts extend the functionality of mode button. Instead of just one
|
||||||
|
you can trigger several actions by pressing the mode button several times.
|
||||||
|
|
||||||
|
The hardware needs to have a mode button, see
|
||||||
|
`/ system routerboard mode-button`.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the scripts:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate mode-button-event,mode-button-scheduler;
|
||||||
|
|
||||||
|
Then configure the mode-button to run `mode-button-event`:
|
||||||
|
|
||||||
|
/ system routerboard mode-button set enabled=yes on-event="/ system script run mode-button-event;";
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, the only parameter is:
|
||||||
|
|
||||||
|
* `ModeButton`: an array with defined actions
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Press the mode button. :)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
36
doc/netwatch-notify.md
Normal file
36
doc/netwatch-notify.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
Notify on host up and down
|
||||||
|
==========================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script sends notifications about host UP and DOWN events. In comparison
|
||||||
|
to just netwatch (`/ tool netwatch`) and its `up-script` and `down-script`
|
||||||
|
this script implements a simple state machine. Host down events are triggered
|
||||||
|
only if the host is down for several checks to avoid false alerts.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate netwatch-notify;
|
||||||
|
|
||||||
|
Then add a scheduler to run it periodically:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1m name=netwatch-notify on-event="/ system script run netwatch-notify;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The hosts to be checked have to be added to netwatch with specific comment:
|
||||||
|
|
||||||
|
/ tool netwatch add comment="notify, hostname=example.com" host=[ :resolve "example.com" ] timeout=5s;
|
||||||
|
|
||||||
|
Also notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
34
doc/netwatch-syslog.md
Normal file
34
doc/netwatch-syslog.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Manage remote logging
|
||||||
|
=====================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RouterOS supports sending log messages via network to a remote syslog server.
|
||||||
|
If the server is not available no log messages (with potentially sensitive
|
||||||
|
information) should be sent. This script disables remote logging by
|
||||||
|
availability.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Let's assume there is a remote log action and associated logging rule:
|
||||||
|
|
||||||
|
/ system logging action set remote=10.0.0.1 [ find where name="remote" ];
|
||||||
|
/ system logging add action=remote topics=info;
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate netwatch-syslog;
|
||||||
|
|
||||||
|
... and create a netwatch matching the IP address from logging action above:
|
||||||
|
|
||||||
|
/ tool netwatch add down-script=netwatch-syslog host=10.0.0.1 up-script=netwatch-syslog;
|
||||||
|
|
||||||
|
All logging rules are disabled when host is down.
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
46
doc/packages-update.md
Normal file
46
doc/packages-update.md
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
Manage system update
|
||||||
|
====================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
In rare cases RouterOS fails to properly downlaod package on update
|
||||||
|
(`/ system package update install`), resulting in borked system with missing
|
||||||
|
packages. This script tries to avoid this situation by doing some basic
|
||||||
|
verification.
|
||||||
|
|
||||||
|
But it provides some extra functionality:
|
||||||
|
|
||||||
|
* send backup via e-mail if [email-backup](email-backup.md) is installed
|
||||||
|
* upload backup if [upload-backup](upload-backup.md) is installed
|
||||||
|
* schedule reboot at night
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate packages-update;
|
||||||
|
|
||||||
|
It is automatically run by [check-routeros-update](check-routeros-update.md)
|
||||||
|
if available.
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Alternatively run it manually:
|
||||||
|
|
||||||
|
/ system script run packages-update;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Notify on RouterOS update](check-routeros-update.md)
|
||||||
|
* [Send backup via e-mail](email-backup.md)
|
||||||
|
* [Upload backup to server](upload-backup.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
34
doc/ppp-on-up.md
Normal file
34
doc/ppp-on-up.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Run scripts on ppp connection
|
||||||
|
=============================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script is supposed to run on established ppp connection. Currently
|
||||||
|
it does:
|
||||||
|
|
||||||
|
* release IPv6 dhcp leases (and thus force a renew)
|
||||||
|
* run [update-tunnelbroker](update-tunnelbroker.md)
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate ppp-on-up;
|
||||||
|
|
||||||
|
... and make it the `on-up` script for ppp profile:
|
||||||
|
|
||||||
|
/ ppp profile set on-up=ppp-on-up [ find ];
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Update configuration on IPv6 prefix change](ipv6-update.md)
|
||||||
|
* [Update tunnelbroker configuration](update-tunnelbroker.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
40
doc/rotate-ntp.md
Normal file
40
doc/rotate-ntp.md
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
Rotate NTP servers
|
||||||
|
==================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RouterOS requires NTP servers to be configured by IP address. Servers from a
|
||||||
|
pool may appear and disappear, leaving broken NTP configuration.
|
||||||
|
|
||||||
|
This script allows to rotate IP addresses from a given pool.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate rotate-ntp;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, this is the parameter:
|
||||||
|
|
||||||
|
* `NtpPool`: dns name of ntp server pool
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Just run the script to update the NTP configuration with actual IP
|
||||||
|
addresses from pool if required.
|
||||||
|
|
||||||
|
Alternatively a scheduler can be created:
|
||||||
|
|
||||||
|
/ system scheduler add interval=5d name=rotate-ntp on-event="/ system script run rotate-ntp;" start-time=startup;
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
49
doc/sms-action.md
Normal file
49
doc/sms-action.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
Act on received SMS
|
||||||
|
===================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RouterOS can act on received SMS. Reboot the device from remote or do
|
||||||
|
whatever is required.
|
||||||
|
|
||||||
|
A broadband interface with SMS support is required.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate sms-action;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, this is the only parameter:
|
||||||
|
|
||||||
|
* `SmsAction`: an array with pre-defined actions
|
||||||
|
|
||||||
|
Then enable SMS actions:
|
||||||
|
|
||||||
|
/ tool sms set allowed-number=+491234567890 receive-enabled=yes secret=s3cr3t;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Send a SMS from allowed number to your device's phone number:
|
||||||
|
|
||||||
|
:cmd s3cr3t script sms-action action=reboot;
|
||||||
|
|
||||||
|
The value given by "`action=`" is one of the pre-defined actions from
|
||||||
|
`SmsAction`.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Forward received SMS](sms-forward.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
36
doc/sms-forward.md
Normal file
36
doc/sms-forward.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
Forward received SMS
|
||||||
|
====================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RouterOS can receive SMS. This script forwards SMS as notification.
|
||||||
|
|
||||||
|
A broadband interface with SMS support is required.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate sms-forward;
|
||||||
|
|
||||||
|
... and add a scheduler to run it periodically:
|
||||||
|
|
||||||
|
/ system scheduler add interval=2m name=sms-forward on-event="/ system script run sms-forward;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Act on received SMS](sms-action.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
33
doc/ssh-keys-import.md
Normal file
33
doc/ssh-keys-import.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
Import SSH keys
|
||||||
|
===============
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script imports public SSH keys (files with extension "`pub`") into
|
||||||
|
local store for user authentication.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate ssh-keys-import;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Copy files with extension "`pub`" containing public SSH keys for your device.
|
||||||
|
Then run the script:
|
||||||
|
|
||||||
|
/ system script run ssh-keys-import;
|
||||||
|
|
||||||
|
Starting with an `authorized_keys` file you can split it on a shell:
|
||||||
|
|
||||||
|
while read type key name; do echo $type $key $name > $name.pub; done < authorized_keys
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
31
doc/super-mario-theme.md
Normal file
31
doc/super-mario-theme.md
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
Play Super Mario theme
|
||||||
|
======================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script plays Super Mario theme.
|
||||||
|
|
||||||
|
The hardware needs a beeper.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate super-mario-theme;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Just run the script to play:
|
||||||
|
|
||||||
|
/ system script run super-mario-theme;
|
||||||
|
|
||||||
|
For extra fun use it for dhcp lease script. :)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
|
@ -1,46 +0,0 @@
|
||||||
Script `template`
|
|
||||||
=================
|
|
||||||
|
|
||||||
[◀ Go back to main README](../README.md)
|
|
||||||
|
|
||||||
Description
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Short description...
|
|
||||||
|
|
||||||
In detail
|
|
||||||
---------
|
|
||||||
|
|
||||||
Get all the details...
|
|
||||||
|
|
||||||
Requirements and installation
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
We need...
|
|
||||||
|
|
||||||
... then we install:
|
|
||||||
|
|
||||||
[admin@MikroTik] > / system script add name=template
|
|
||||||
[admin@MikroTik] > / system script run script-updates
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The configuration goes to `global-config`, These are the parameters:
|
|
||||||
|
|
||||||
* ...
|
|
||||||
|
|
||||||
Usage and invocation
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
This is intended...
|
|
||||||
|
|
||||||
See also
|
|
||||||
--------
|
|
||||||
|
|
||||||
* [another script](template.md)
|
|
||||||
* ...
|
|
||||||
|
|
||||||
---
|
|
||||||
[◀ Go back to main README](../README.md)
|
|
||||||
[▲ Go back to top](#top)
|
|
42
doc/unattended-lte-firmware-upgrade.md
Normal file
42
doc/unattended-lte-firmware-upgrade.md
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
Install LTE firmware upgrade
|
||||||
|
============================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script upgrades LTE firmware on compatible devices:
|
||||||
|
|
||||||
|
* R11e-LTE
|
||||||
|
* R11e-LTE-US
|
||||||
|
* R11e-4G
|
||||||
|
* R11e-LTE6
|
||||||
|
|
||||||
|
A temporary scheduler is created to be independent from terminal. Thus
|
||||||
|
starting the upgrade process over the broadband connection is supported.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate unattended-lte-firmware-upgrade;
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Run the script if an upgrade for your LTE hardware is available:
|
||||||
|
|
||||||
|
/ system script run unattended-lte-firmware-upgrade;
|
||||||
|
|
||||||
|
Then be patient, go for a coffee and wait for the upgrade process to finish.
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Notify on LTE firmware upgrade](check-lte-firmware-upgrade.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
38
doc/update-gre-address.md
Normal file
38
doc/update-gre-address.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
Update GRE configuration with dynamic addresses
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Running a GRE tunnel over IPSec with IKEv2 is a common scenario. This is
|
||||||
|
easy to configure on client, but has an issue on server side: client IP
|
||||||
|
addresses are assigned dynamically via mode-config and have to be updated
|
||||||
|
for GRE interface.
|
||||||
|
|
||||||
|
This script handles the address updates and disables the interface if the
|
||||||
|
client is disconnected.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate update-gre-address;
|
||||||
|
|
||||||
|
... and add a scheduler to run the script periodically:
|
||||||
|
|
||||||
|
/ system scheduler add interval=30s name=update-gre-address on-event="/ system script run update-gre-address;" start-time=startup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to interface's comment. Add the client's IKEv2
|
||||||
|
certificate CN into the comment:
|
||||||
|
|
||||||
|
/ interface gre set comment="ikev2-client1" gre-client1;
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
41
doc/update-tunnelbroker.md
Normal file
41
doc/update-tunnelbroker.md
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
Update tunnelbroker configuration
|
||||||
|
=================================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Connecting to [tunnelbroker.net](//tunnelbroker.net) from dynamic public
|
||||||
|
ip address requires the address to be sent to the remote, and to be set
|
||||||
|
locally. This script does both.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate update-tunnelbroker;
|
||||||
|
|
||||||
|
Installing [ppp-on-up](ppp-on-up.md) makes this script run when ever a ppp
|
||||||
|
connection is established.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to interface's comment:
|
||||||
|
|
||||||
|
/ interface 6to4 set comment="tunnelbroker, user=user, pass=s3cr3t, id=12345" tunnelbroker;
|
||||||
|
|
||||||
|
Also enabling dynamic DNS in Mikrotik cloud is required:
|
||||||
|
|
||||||
|
/ ip cloud set ddns-enabled=yes;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Run scripts on ppp connection](ppp-on-up.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
62
doc/upload-backup.md
Normal file
62
doc/upload-backup.md
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
Upload backup to server
|
||||||
|
=======================
|
||||||
|
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This script uploads binary backup (`/ system backup save`) and complete
|
||||||
|
configuration export (`/ export terse`) to external server.
|
||||||
|
|
||||||
|
Requirements and installation
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Just install the script:
|
||||||
|
|
||||||
|
$ScriptInstallUpdate upload-backup;
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The configuration goes to `global-config-overlay`, these are the parameters:
|
||||||
|
|
||||||
|
* `BackupSendBinary`: whether to send binary backup
|
||||||
|
* `BackupSendExport`: whether to send configuration export
|
||||||
|
* `BackupPassword`: password to encrypt the backup with
|
||||||
|
* `BackupUploadUrl`: url to upload to
|
||||||
|
* `BackupUploadUser`: username for server authentication
|
||||||
|
* `BackupUploadPass`: password for server authentication
|
||||||
|
|
||||||
|
Also notification settings are required for e-mail and telegram.
|
||||||
|
|
||||||
|
### Issues with SFTP client
|
||||||
|
|
||||||
|
The RouterOS SFTP client is picky if it comes to authentication methods.
|
||||||
|
I had to disable all but password authentication on server side. For openssh
|
||||||
|
edit `/etc/ssh/sshd_config` and add a directive like this, changed for your
|
||||||
|
needs:
|
||||||
|
|
||||||
|
Match User mikrotik
|
||||||
|
AuthenticationMethods password
|
||||||
|
|
||||||
|
Usage and invocation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Just run the script:
|
||||||
|
|
||||||
|
/ system script run upload-backup;
|
||||||
|
|
||||||
|
Creating a scheduler may be an option:
|
||||||
|
|
||||||
|
/ system scheduler add interval=1w name=upload-backup on-event="/ system script run upload-backup;" start-time=09:25:00;
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Send backup via e-mail](email-backup.md)
|
||||||
|
* [Upload backup to Mikrotik cloud](cloud-backup.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
[◀ Go back to main README](../README.md)
|
||||||
|
[▲ Go back to top](#top)
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# create and email backup and config file
|
# create and email backup and config file
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/email-backup.md
|
||||||
|
|
||||||
:global BackupPassword;
|
:global BackupPassword;
|
||||||
:global BackupSendBinary;
|
:global BackupSendBinary;
|
||||||
|
|
|
@ -3,10 +3,11 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# global configuration
|
# global configuration
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/
|
||||||
|
|
||||||
# Make sure all configuration properties are up to date and this
|
# Make sure all configuration properties are up to date and this
|
||||||
# value is in sync with value in script 'global-functions'!
|
# value is in sync with value in script 'global-functions'!
|
||||||
:global GlobalConfigVersion 14;
|
:global GlobalConfigVersion 15;
|
||||||
|
|
||||||
# This is used for DNS and backup file.
|
# This is used for DNS and backup file.
|
||||||
:global Domain "example.com";
|
:global Domain "example.com";
|
||||||
|
|
|
@ -3,11 +3,12 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# global configuration, custom overlay
|
# global configuration, custom overlay
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/
|
||||||
|
|
||||||
# Make sure all configuration properties are up to date and this
|
# Make sure all configuration properties are up to date and this
|
||||||
# value is in sync with value in script 'global-functions'!
|
# value is in sync with value in script 'global-functions'!
|
||||||
# Comment or remove to disable change notifications.
|
# Comment or remove to disable change notifications.
|
||||||
:global GlobalConfigVersion 14;
|
:global GlobalConfigVersion 15;
|
||||||
|
|
||||||
# The global-config script is updated by $ScriptInstallUpdate,
|
# The global-config script is updated by $ScriptInstallUpdate,
|
||||||
# global-config-overlay becomes an overlay for your changes.
|
# global-config-overlay becomes an overlay for your changes.
|
||||||
|
|
|
@ -17,4 +17,5 @@
|
||||||
12="Removed '\$ScriptUpdatesConfigChangesIgnore', comment '\$GlobalConfigVersion' in 'global-config-overlay' to disable change notifications";
|
12="Removed '\$ScriptUpdatesConfigChangesIgnore', comment '\$GlobalConfigVersion' in 'global-config-overlay' to disable change notifications";
|
||||||
13="Configuration for script 'bridge-port-to-default' changed with new syntax in comment";
|
13="Configuration for script 'bridge-port-to-default' changed with new syntax in comment";
|
||||||
14="Dropped script 'script-updates', use '\$ScriptInstallUpdate' exclusively!";
|
14="Dropped script 'script-updates', use '\$ScriptInstallUpdate' exclusively!";
|
||||||
|
15="New documentation is online! https://git.eworm.de/cgit/routeros-scripts/about/#available-scripts";
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
#
|
#
|
||||||
# global functions
|
# global functions
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/
|
||||||
|
|
||||||
# expected configuration version
|
# expected configuration version
|
||||||
:global ExpectedConfigVersion 14;
|
:global ExpectedConfigVersion 15;
|
||||||
|
|
||||||
# global variables not to be changed by user
|
# global variables not to be changed by user
|
||||||
:global GlobalFunctionsReady false;
|
:global GlobalFunctionsReady false;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# wait for global-functions to finish
|
# wait for global-functions to finish
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/global-wait.md
|
||||||
|
|
||||||
:global GlobalFunctionsReady;
|
:global GlobalFunctionsReady;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# track gps data by sending json data to http server
|
# track gps data by sending json data to http server
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/gps-track.md
|
||||||
|
|
||||||
:global GpsTrackUrl;
|
:global GpsTrackUrl;
|
||||||
:global Identity;
|
:global Identity;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# add private WPA passphrase after hotspot login
|
# add private WPA passphrase after hotspot login
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
|
||||||
|
|
||||||
:global LogPrintExit;
|
:global LogPrintExit;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# enable or disable ip addresses based on bridge port state
|
# enable or disable ip addresses based on bridge port state
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/ip-addr-bridge.md
|
||||||
|
|
||||||
:foreach Bridge in=[ / interface bridge find ] do={
|
:foreach Bridge in=[ / interface bridge find ] do={
|
||||||
:local BrName [ / interface bridge get $Bridge name ];
|
:local BrName [ / interface bridge get $Bridge name ];
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# update firewall and dns settings on IPv6 prefix change
|
# update firewall and dns settings on IPv6 prefix change
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/ipv6-update.md
|
||||||
|
|
||||||
:local PdPrefix $"pd-prefix";
|
:local PdPrefix $"pd-prefix";
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# run scripts on DHCP lease
|
# run scripts on DHCP lease
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/lease-script.md
|
||||||
|
|
||||||
:global LogPrintExit;
|
:global LogPrintExit;
|
||||||
|
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# enable LEDs
|
# enable LEDs
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/leds-mode.md
|
||||||
|
|
||||||
/ system leds settings set all-leds-off=never;
|
/ system leds settings set all-leds-off=never;
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# disable LEDs
|
# disable LEDs
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/leds-mode.md
|
||||||
|
|
||||||
/ system leds settings set all-leds-off=immediate;
|
/ system leds settings set all-leds-off=immediate;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# toggle LEDs mode
|
# toggle LEDs mode
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/leds-mode.md
|
||||||
|
|
||||||
:if ([ / system leds settings get all-leds-off ] = "never") do={
|
:if ([ / system leds settings get all-leds-off ] = "never") do={
|
||||||
/ system leds settings set all-leds-off=immediate;
|
/ system leds settings set all-leds-off=immediate;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# run on mode-button event and count button presses
|
# run on mode-button event and count button presses
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/mode-button.md
|
||||||
|
|
||||||
:global ModeButton;
|
:global ModeButton;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# act on multiple mode-botton presses from scheduler
|
# act on multiple mode-botton presses from scheduler
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/mode-button.md
|
||||||
|
|
||||||
:global ModeButton;
|
:global ModeButton;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# monitor netwatch and send notifications
|
# monitor netwatch and send notifications
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/netwatch-notify.md
|
||||||
|
|
||||||
:global NetwatchNotify;
|
:global NetwatchNotify;
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
# requires: dont-require-permissions=yes
|
# requires: dont-require-permissions=yes
|
||||||
#
|
#
|
||||||
# manage remote logging facilities
|
# manage remote logging facilities
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/netwatch-syslog.md
|
||||||
|
|
||||||
:local Remote [ /system logging action get ([ find where target=remote ]->0) remote ];
|
:local Remote [ /system logging action get ([ find where target=remote ]->0) remote ];
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2019-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# download packages and reboot for installation
|
# download packages and reboot for installation
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/packages-update.md
|
||||||
|
|
||||||
:global DownloadPackage;
|
:global DownloadPackage;
|
||||||
:global LogPrintExit;
|
:global LogPrintExit;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# run scripts on ppp up
|
# run scripts on ppp up
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/ppp-on-up.md
|
||||||
|
|
||||||
:global LogPrintExit;
|
:global LogPrintExit;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# rotate the ntp servers
|
# rotate the ntp servers
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/rotate-ntp.md
|
||||||
|
|
||||||
:global NtpPool;
|
:global NtpPool;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# run action on received SMS
|
# run action on received SMS
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/sms-action.md
|
||||||
|
|
||||||
:global SmsAction;
|
:global SmsAction;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# forward SMS to e-mail
|
# forward SMS to e-mail
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/sms-forward.md
|
||||||
|
|
||||||
:global Identity;
|
:global Identity;
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,8 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# import ssh keys from file
|
# import ssh keys from file
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/ssh-keys-import.md
|
||||||
|
|
||||||
# Split files with several keys from a shell...
|
:foreach Key in=[ / file find where type="ssh key" ] do={
|
||||||
# while read type key name; do echo $type $key $name > $name.pub; done < keys.pub
|
/ user ssh-key import user=admin public-key-file=[ / file get $Key name ];
|
||||||
# ... then transfer with scp/sftp.
|
}
|
||||||
|
|
||||||
:foreach Key in=[ / file find where type="ssh key" ] do={ / user ssh-key import user=admin public-key-file=[ / file get $Key name ]; }
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# play Super Mario theme
|
# play Super Mario theme
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/super-mario-theme.md
|
||||||
|
|
||||||
:local Beeps {
|
:local Beeps {
|
||||||
{ 660; 100 }; 150; { 660; 100 }; 300; { 660; 100 }; 300;
|
{ 660; 100 }; 150; { 660; 100 }; 300; { 660; 100 }; 300;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2018-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# schedule unattended lte firmware upgrade
|
# schedule unattended lte firmware upgrade
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/unattended-lte-firmware-upgrade.md
|
||||||
|
|
||||||
:foreach Interface in=[ / interface lte find ] do={
|
:foreach Interface in=[ / interface lte find ] do={
|
||||||
:local Firmware;
|
:local Firmware;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#
|
#
|
||||||
# update gre interface remote address with dynamic address from
|
# update gre interface remote address with dynamic address from
|
||||||
# ipsec remote peer
|
# ipsec remote peer
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/update-gre-address.md
|
||||||
|
|
||||||
/ interface gre set remote-address=0.0.0.0 disabled=yes [ find where !running !disabled ];
|
/ interface gre set remote-address=0.0.0.0 disabled=yes [ find where !running !disabled ];
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
# RouterOS script: update-tunnelbroker
|
# RouterOS script: update-tunnelbroker
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
# Michael Gisbers <michael@gisbers.de>
|
# Michael Gisbers <michael@gisbers.de>
|
||||||
|
#
|
||||||
|
# update local address of tunnelbroker interface
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/update-tunnelbroker.md
|
||||||
|
|
||||||
:global CertificateAvailable;
|
:global CertificateAvailable;
|
||||||
:global LogPrintExit;
|
:global LogPrintExit;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
# Copyright (c) 2013-2020 Christian Hesse <mail@eworm.de>
|
||||||
#
|
#
|
||||||
# create and upload backup and config file
|
# create and upload backup and config file
|
||||||
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/upload-backup.md
|
||||||
|
|
||||||
:global BackupPassword;
|
:global BackupPassword;
|
||||||
:global BackupSendBinary;
|
:global BackupSendBinary;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue