From 6bce0a4b6a3d1ee48a1e4b4f40652ae490fb288c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 15 Jul 2020 12:22:55 +0200 Subject: add 'log-forward', drop 'early-errors' --- log-forward | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 log-forward (limited to 'log-forward') diff --git a/log-forward b/log-forward new file mode 100644 index 0000000..8f7bc1f --- /dev/null +++ b/log-forward @@ -0,0 +1,47 @@ +#!rsc +# RouterOS script: log-forward +# Copyright (c) 2020 Christian Hesse +# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md +# +# forward log messages via notification +# https://git.eworm.de/cgit/routeros-scripts/about/doc/log-forward.md + +:global Identity; +:global LogForwardFilter; +:global LogForwardLast; + +:global LogPrintExit; +:global MailServerIsUp; +:global SendNotification; +:global WaitFullyConnected; + +$WaitFullyConnected; + +:if ($MailServerIsUp = false) do={ + $LogPrintExit warning ("Mail server is not up.") true; +} + +:local Count 0; +:local Messages ""; +:local MessageVal; + +:foreach Message in=[ / log find where !(topics~$LogForwardFilter) ] do={ + :set MessageVal [ / log get $Message ]; + + :if ($LogForwardLast = $MessageVal) do={ + :set Messages ""; + :set Count 0; + } else={ + :set Messages ($Messages . "\n" . $MessageVal->"time" . " " . \ + [ :tostr ($MessageVal->"topics") ] . " " . $MessageVal->"message"); + :set Count ($Count + 1); + } +} + +:if ($Count > 0) do={ + $SendNotification ("\E2\9A\A0 Log Forwarding") \ + ("The log on " . $Identity . " contains these " . $Count . " messages after " . \ + [ / system resource get uptime ] . " uptime.\n" . $Messages); + + :set LogForwardLast $MessageVal; +} -- cgit v1.2.3-54-g00ecf