Commit graph

152 commits

Author SHA1 Message Date
Christian Hesse
6770a15a7d cloud-backup: add configurable random delay 2021-02-24 21:51:56 +01:00
Christian Hesse
e99821c39a switch default branch from master to main 2021-02-23 10:14:09 +01:00
Christian Hesse
73eb92fb72 We have a Telegram group! 2021-02-22 10:34:09 +01:00
Christian Hesse
d5afc79eed global: drop script 'global-wait'
All scripts wait for the global functions on their own now.
2021-02-18 21:45:38 +01:00
Christian Hesse
3f12730ed4 email-backup: no example address, complain if missing 2021-02-18 12:54:04 +01:00
Christian Hesse
28db473299 global-functions: send (and re-send) e-mails from queue 2021-02-16 16:45:13 +01:00
Christian Hesse
eaea89112a global-functions: $LogPrintExit: notify about colorful output 2021-01-22 10:08:15 +01:00
Christian Hesse
b780b40baf global-functions: $LogPrintExit: make colorful output configurable 2021-01-22 09:22:34 +01:00
Christian Hesse
547fbc630a update copyright for 2021 2021-01-01 21:33:52 +01:00
Christian Hesse
0360a0ef90 global-functions: $ScriptInstallUpdate: implement migration mechanism
Reset $SentConfigChangesNotification and rerun $ScriptInstallUpdate
to test...

:set SentConfigChangesNotification
$ScriptInstallUpdate
2020-12-18 20:32:29 +01:00
Christian Hesse
010e2d6b05 check-certificates: make the certificate renewal time configurable 2020-12-18 16:02:31 +01:00
Christian Hesse
3657830582 ipv6-update: notify about interface specific address list entries 2020-12-18 15:31:03 +01:00
Christian Hesse
62598b6653 import Let's Encrypt certificate "R3" 2020-12-17 22:47:12 +01:00
Christian Hesse
6b19cf2578 log-forward: add parenthesis in filter expression
Looks like this works without parenthesis in RouterOS,
let's add it anyway.
2020-11-26 10:32:17 +01:00
Christian Hesse
62ef70e5dd netwatch-notify: notify about changes 2020-11-17 22:28:05 +01:00
Christian Hesse
966e7b6fd3 log-forward: do not exclude topic 'script'
We have justified severity for some log message, so do no longer exclude
topic 'script'.
2020-11-13 22:46:26 +01:00
Christian Hesse
d2fab050ba log-forward: do not forward own e-mail logs
Revert the last change, instead just ignore messages that were generated
by log-forward, with "Log Forwarding" in subject.
2020-11-13 20:56:48 +01:00
Christian Hesse
24eb2c15a9 log-forward: do not forward e-mail logs
This could cause infinite loop if the mail server does not recover...
2020-11-12 23:18:51 +01:00
Christian Hesse
98c132105d check-routeros-update: support installing updates automatically if seen in neighbor list 2020-11-01 21:48:03 +01:00
Christian Hesse
fee2523a22 mode-button: make LED configurable 2020-10-23 21:50:14 +02:00
Christian Hesse
ae5570325b ospf-to-leds: introduce script to visualize ospf state via leds 2020-10-23 14:17:33 +02:00
Christian Hesse
6d9eb99e08 check-health: add deviation on temperature recovery threshold
This helps against notification flooding.
2020-10-16 22:58:14 +02:00
Christian Hesse
8b2df7abd0 mode-button: merge mode-button-event & mode-button-scheduler 2020-10-16 08:24:19 +02:00
Christian Hesse
b769077746 global-config: do not define mail addresses by default 2020-10-15 22:45:27 +02:00
Christian Hesse
3e0039c266 global-functions: $SendTelegram: use fixed-width font...
... but give configuration to opt-out.
2020-10-13 10:05:59 +02:00
Christian Hesse
a0d1709244 log-forward: notify on rate limit 2020-09-28 20:26:29 +02:00
Christian Hesse
697e32a306 log-forward: add filter on log message text 2020-09-25 22:21:59 +02:00
Christian Hesse
c3ea555233 dhcp-to-dns: notify on acting on all bound leases 2020-09-25 22:20:34 +02:00
Christian Hesse
9f16e0644b global-functions: notify on Telegram queue 2020-09-25 22:19:16 +02:00
Christian Hesse
9bec6914cc netwatch-notify: notify on configurable check count threshold 2020-09-25 22:17:26 +02:00
Christian Hesse
49737af6d1 extend magic pattern with "by RouterOS"
This matches the string included in export.
2020-09-18 11:00:27 +02:00
Christian Hesse
6575cb3321 notify about support for dhcp server name in fqdn 2020-08-07 22:15:30 +02:00
netztrip
2e1acc2505 dhcp-to-dns: add support for dhcp server name in fqdn 2020-08-07 22:08:01 +02:00
Christian Hesse
075859c898 global-functions: introduce and use $SymbolForNotification 2020-07-17 08:12:00 +02:00
Christian Hesse
6bce0a4b6a add 'log-forward', drop 'early-errors' 2020-07-15 12:41:29 +02:00
Christian Hesse
f4d6e07dbb global-config: dropped $ScriptUpdatesIgnore, use ignore flag in comment 2020-07-14 17:02:41 +02:00
Christian Hesse
d1b6ca3d0b notify about auto patch updates in check-routeros-update 2020-07-14 17:02:36 +02:00
Christian Hesse
4a52d51a36 notify about hooks in netwatch-notify 2020-07-14 17:02:31 +02:00
Christian Hesse
aec63407e8 notify about options in script comments 2020-07-14 16:23:04 +02:00
Christian Hesse
883920aeae notify about $IPCalc 2020-07-14 16:22:17 +02:00
Christian Hesse
23563cb9aa notify about early-errors 2020-07-14 16:16:46 +02:00
Christian Hesse
2907dbe18f check-routeros-update: support installing patch updates automatically 2020-07-07 00:21:47 +02:00
Christian Hesse
01fe371a0d dhcp-to-dns: allow to configure 'dhcp' prefix in zone 2020-07-03 08:20:36 +02:00
Christian Hesse
71ad56aacc explicitly name the license
Copyright (C) 2013-2020 Christian Hesse <mail@eworm.de>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

https://www.gnu.org/licenses/#GPL
https://www.gnu.org/licenses/gpl.html
https://www.gnu.org/licenses/gpl.md
2020-06-19 22:17:42 +02:00
Christian Hesse
2363f75e7f ask for GitHub and GitLab stars 2020-03-27 22:19:33 +01:00
Christian Hesse
1d93e92dcd Notify about new documentation! 2020-03-27 22:12:49 +01:00
Christian Hesse
070ae8ecb5 link global-{config,config-overlay,functions} to main README 2020-03-27 22:12:49 +01:00
Christian Hesse
5f46ef7635 completely replace script-updates with $ScriptInstallUpdate 2020-03-23 14:01:20 +01:00
Christian Hesse
739884ecc7 certificate-renew-issued: support auto-export with given passphrases 2020-03-20 09:26:12 +01:00
Christian Hesse
628ae1bd70 bridge-port-to-default: use $ParseKeyValueStore...
... and unbreak last commit removing delay (69352c90).
This requires a change in configuration syntax. Change this...

    comment="default:br-local, alt:br-guest"

to...

    comment="default=br-local, alt=br-guest"
2020-03-03 13:32:00 +01:00
Christian Hesse
b5f4c2c87e global-config: drop $ScriptUpdatesConfigChangesIgnore
Comment or remove $GlobalConfigVersion in global-config-overlay
to disable change notifications.
2020-02-04 20:19:46 +01:00
Christian Hesse
1e72f03e5e README: update instructions to use $ScriptInstallUpdate 2020-01-29 22:14:56 +01:00
Christian Hesse
afb9839073 update copyright for 2020 2020-01-01 17:00:39 +01:00
Christian Hesse
df0c2afa31 check-health: decrease default threshold for voltage 2019-10-22 15:03:52 +02:00
Christian Hesse
f40bb2c8c8 check-health: make threshold for voltage configurable 2019-10-14 19:13:31 +02:00
Christian Hesse
1cee36a911 introduce global-config-overlay 2019-09-12 21:29:41 +02:00
Christian Hesse
166bbffe1d script-updates: add donation hint in configuration warning notification 2019-08-30 14:10:58 +02:00
Christian Hesse
05f2d03ad9 use shorter url for my repository 2019-08-30 13:43:21 +02:00
Christian Hesse
29dc1b8841 add script 'check-health'
This may be incomplete... Please report if you have missing PSUs,
ttemperature sensors, whatever.
2019-08-27 12:01:32 +02:00
Christian Hesse
8d1313f588 add script 'upload-backup' 2019-07-19 11:46:29 +02:00
Christian Hesse
26f01b238b global-config: move config for email-backup
Signed-off-by: Christian Hesse <mail@eworm.de>
2019-07-19 11:46:29 +02:00
Christian Hesse
5101d57d52 backup: split off cloud-backup
Currently backup to MikroTik cloud is pretty unreliable and script can
not catch errors at runtime. Looks like this does not change any time
soon (Ticket#2019052022003204).

So let's just split off the cloud backup to make sure email backup works
as expected.
2019-06-14 15:13:41 +02:00
Christian Hesse
15d3e9ea7b global-config: change duplicate word from daily psk 2019-04-05 07:56:50 +02:00
Christian Hesse
7b1c275cc2 script-updates: add option to ignore global-config changes 2019-04-02 08:48:35 +02:00
Christian Hesse
594aef2aab check-certificates: support multiple passphrases 2019-04-01 22:45:38 +02:00
Christian Hesse
1cd7679a07 update-tunnelbroker: get tunnelbroker config from interface comment 2019-01-04 20:20:20 +01:00
Christian Hesse
870f00bb36 global: variable names are CamelCase
___  _         ___     __
           / _ )(_)__ _   / _/__ _/ /_
          / _  / / _ `/  / _/ _ `/ __/
         /____/_/\_, /  /_/ \_,_/\__/
 _       __     /___/       _             __
| |     / /___ __________  (_)___  ____ _/ /
| | /| / / __ `/ ___/ __ \/ / __ \/ __ `/ /
| |/ |/ / /_/ / /  / / / / / / / / /_/ /_/
|__/|__/\__,_/_/  /_/ /_/_/_/ /_/\__, (_)
                                /____/

RouterOS has some odd behavior when it comes to variable names. Let's
have a look at the interfaces:

[admin@MikroTik] > / interface print where name=en1
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU
 0  RS en1                                 ether            1500  1598

That looks ok. Now we use a script:

{ :local interface "en1";
  / interface print where name=$interface; }

And the result...

[admin@MikroTik] > { :local interface "en1";
{...   / interface print where name=$interface; }
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU
 0  RS en1                                 ether            1500  1598

... still looks ok.
We make a little modification to the script:

{ :local name "en1";
  / interface print where name=$name; }

And the result:

[admin@MikroTik] > { :local name "en1";
{...   / interface print where name=$name; }
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU
 0  RS en1                                 ether            1500  1598
 1   S en2                                 ether            1500  1598
 2   S en3                                 ether            1500  1598
 3   S en4                                 ether            1500  1598
 4   S en5                                 ether            1500  1598
 5  R  br-local                            bridge           1500  1598

Ups! The filter has no effect!
That happens whenever the variable name ($name) matches the property
name (name=).

And another modification:

{ :local type "en1";
  / interface print where name=$type; }

And the result:

[admin@MikroTik] > { :local type "en1";
{...   / interface print where name=$type; }
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU

Ups! Nothing?
Even if the variable name ($type) matches whatever property name (type=)
things go wrong.

The answer from MikroTik support (in Ticket#2019010222000454):

> This is how scripting works in RouterOS and we will not fix it.

To get around this we use variable names in CamelCase. Let's hope
Mikrotik never ever introduces property names in CamelCase...

*fingers crossed*
2019-01-04 12:35:34 +01:00
Christian Hesse
7d06a7e8c2 global-{config,functions}: move variables, make independent 2019-01-03 16:09:03 +01:00
Christian Hesse
6e03a3b935 script-updates: add configuration versioning 2019-01-03 15:36:26 +01:00
Christian Hesse
fe04b8b8db rename script 'check-lte-firmware-update' -> 'check-lte-firmware-upgrade'
That's the correct wording from commands..
2019-01-02 22:50:23 +01:00
Michael Gisbers
ca16f286ef update-tunnelbroker: move configuration to global-config...
... and get the external ip address from cloud.

Signed-off-by: Michael Gisbers <michael@gisbers.de>
Signed-off-by: Christian Hesse <mail@eworm.de>
2019-01-02 15:02:42 +01:00
Christian Hesse
472cd3d905 update copyright for 2019 2019-01-02 09:38:34 +01:00
Christian Hesse
44be3d8d07 check-certificates: support auto-renew of certificates 2018-12-20 15:55:40 +01:00
Christian Hesse
ee49fe3184 update-gre-address: remove settings from global-config
Instead read infos from gre interface comment.
2018-12-19 17:22:36 +01:00
Christian Hesse
9f077ab8bf ipv6-update: remove settings from global-config
Instead make it more robust by reading comments.
2018-12-19 16:48:34 +01:00
Christian Hesse
6f606f9ca5 email-backup: support cloud backup 2018-12-18 22:48:28 +01:00
Christian Hesse
9346df67d7 add script 'check-lte-firmware-update' 2018-12-14 23:04:18 +01:00
Christian Hesse
6e4d715937 global-functions: add identity tag in $SendNotification
... and send subject in telegram message.
2018-11-28 21:19:39 +01:00
Christian Hesse
c4f8c1ad52 global-config: add identity tag 2018-11-26 13:45:02 +01:00
Christian Hesse
015f8e01b5 global-config: sort sms-action alphabetically 2018-11-13 10:20:45 +01:00
Christian Hesse
e17389749f global-config: add more examples for mode button and sms-action 2018-11-13 10:20:14 +01:00
Christian Hesse
7aae1bf9dd global-config: default for telegram is empty strings...
... to make sure the api is not flooded with invalid requests.
2018-10-10 10:22:18 +02:00
Christian Hesse
5e4ef0ab8f global-functions: add function to notify via e-mail and telegram 2018-10-09 15:46:39 +02:00
Christian Hesse
977a5d5f5e global-functions: move daily psk secrets to global-config 2018-10-09 14:17:19 +02:00
Christian Hesse
7b4bef1a1e make GeneratePSK a global function 2018-10-09 14:15:34 +02:00
Christian Hesse
9c3f3b9f20 add global-functions 2018-10-09 14:15:34 +02:00
Christian Hesse
311475e67c add script 'bridge-port-toggle'
... to toggle between configuration 'default' and 'alt'.
2018-10-04 14:03:09 +02:00
Christian Hesse
17f64b48af bridge-port-to-default: support different configurations
Just add something like this to your bridge ports:

comment="default:br-ext,alt:br-intern"
2018-10-04 13:56:09 +02:00
Christian Hesse
ea4b739d00 global-config: add missing semicolons 2018-10-04 13:32:21 +02:00
Christian Hesse
be673737d3 start scripts with a magic token / shebang 2018-09-27 00:18:43 +02:00
Christian Hesse
5fff04ed0e fix typos 2018-09-13 22:25:38 +02:00
Christian Hesse
95794d0367 sms-action: move configuration to global-config 2018-09-13 22:07:12 +02:00
Christian Hesse
172d789f2a add scripts mode-button-{event,scheduler} 2018-09-10 22:15:54 +02:00
Christian Hesse
2de26a6617 check-routeros-update: enable auto update for safe version 2018-09-05 23:45:35 +02:00
Christian Hesse
23b167e84b check-routeros-update: resend notification if version changes 2018-08-30 11:14:01 +02:00
Christian Hesse
21f2b04f9a script-updates: add support for url suffix
This allows to fetch from different branch...
2018-08-27 11:15:03 +02:00
Christian Hesse
07e54dd88b add empty comment at first line...
... for better formatting in export.
2018-08-24 16:58:30 +02:00
Christian Hesse
2ec96e9db4 add script 'gps-track' 2018-08-06 14:21:55 +02:00
Christian Hesse
a80591f510 script-updates: always accept updates from file 2018-07-10 00:05:30 +02:00
Christian Hesse
a6d809ef8e global-config: script-updates url examples for github and gitlab 2018-07-09 17:06:17 +02:00