aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2020-04-18 23:20:29 +0200
committerGravatar Christian Hesse <mail@eworm.de>2020-04-19 00:11:01 +0200
commitc8770efd7222f317ccedf228c0a1cae6c1b16262 (patch)
treeea9d6ff306b25b06a0914f48fbe03a9bfb800af9
parentaedc31451950809f9f7dae4a4d7e40d1495f9ac5 (diff)
add script 'early-erros'
-rw-r--r--README.md1
-rw-r--r--doc/early-errors.md42
-rw-r--r--early-errors22
3 files changed, 65 insertions, 0 deletions
diff --git a/README.md b/README.md
index 63a8d77..c1b1923 100644
--- a/README.md
+++ b/README.md
@@ -154,6 +154,7 @@ Available Scripts
* [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 notification with early errors](doc/early-errors.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)
diff --git a/doc/early-errors.md b/doc/early-errors.md
new file mode 100644
index 0000000..35a11f9
--- /dev/null
+++ b/doc/early-errors.md
@@ -0,0 +1,42 @@
+Send notification with early errors
+===================================
+
+[◀ Go back to main README](../README.md)
+
+Description
+-----------
+
+RouterOS supports sending log messages via e-mail or to a syslog server.
+However this does not work early after boot if network connectivity is not
+yet established. For example log messages about reboot without proper
+shutdown may be missed:
+
+> router rebooted without proper shutdown, probably power outage
+
+The script collects log messages with severity `error` and sends a
+notification.
+
+Requirements and installation
+-----------------------------
+
+Just install the script:
+
+ $ScriptInstallUpdate early-errors;
+
+... and add a scheduler:
+
+ / system scheduler add name=early-erros on-event=":global WaitTimeSync; / system script { run global-wait; \$WaitTimeSync; run early-errors; }" start-time=startup;
+
+Configuration
+-------------
+
+The notifications just require notification settings 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)
diff --git a/early-errors b/early-errors
new file mode 100644
index 0000000..ad871f6
--- /dev/null
+++ b/early-errors
@@ -0,0 +1,22 @@
+#!rsc
+# RouterOS script: early-errors
+# Copyright (c) 2020 Christian Hesse <mail@eworm.de>
+#
+# send notification with early errors
+# https://git.eworm.de/cgit/routeros-scripts/about/doc/early-errors.md
+
+:global Identity;
+
+:global SendNotification;
+
+:local ErrCount [ / log print count-only where topics~"error" ];
+:if ($ErrCount > 0) do={
+ :local Message ("The log on " . $Identity . " contains " . $ErrCount . \
+ " errors after " . [ / system resource get uptime ] . " uptime.\n");
+ :foreach Log in=[ / log find where topics~"error" ] do={
+ :local LogVal [ / log get $Log ];
+ :set Message ($Message . "\n" . [ :tostr ($LogVal->"topics") ] . \
+ " " . ($LogVal->"message"));
+ }
+ $SendNotification ("\E2\9A\A0 Early errors") ($Message);
+}