Guten Abend Liebes pi-Forum,
ich nutze einen pi mit raspbian-lite als kleinen "Remote-Syslog-Server" in einem Netzwerk. Nun möchte ich bei bestimmten Ereignissen eine PushOver-Nachricht generieren und benötige hier etwas Unterstützung von euch. Angelehnt an dieses pushover-ssh-skript habe ich versucht die o.g. Anforderung zu realiseren, scheitere aber an der korrekten Ausgabe. Der Rest des Skriptes funktioniert, es geht also nur um die gefilterte Ausgabe.
syslog gibt z.B. das folgende Log aus:
Code
Aug 18 18:11:05 192.168.55.55 iLO4: 08/18/2017 18:11 The receipt of this message confirms that Syslog is configured correctly
Für den Inhalt der Pushover-Nachricht würde ich gern den hinteren Teil ab "iLO4:" filtern , bekomme es aber leider nicht hin. Hier mein aktueller Versuch:
Bash
#!/bin/sh
#
# Thomas Wenzlaff 15.04.2014 Installationsanleitung unter http://www.wenzlaff.info
#
#
# (C) 2014 Thomas Wenzlaff http://www.wenzlaff.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.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see {http://www.gnu.org/licenses/}.
#
# Hier den User Key von der https://pushover.net Seite eingeben:
PUSHOVER_USER="XXXXXXXXXXXXXXXXXXXXXXXXX"
# Hier den API Token/Key eingeben. Zu finden unter dem Menü: Apps & Plugins dann die Application
PUSHOVER_API_TOKEN="XXXXXXXXXXXXXXXXXXXX"
# Ab hier nichts mehr anpassen
if [ -z "$PUSHOVER_USER" ]
then echo "Der Pushover User muss im Script angegeben werden. Einen Wert für PUSHOVER_USER setzen."
return 1
fi
if [ -z "$PUSHOVER_API_TOKEN" ]
then echo "Der Pushover Token muss im Script angegeben werden. Einen Wert für PUSHOVER_API_TOKEN setzen."
return 1
fi
echo "Syslog-Server wird auf iLO4 Eintraege überwacht"
tail -F /var/log/syslog | gawk '{if($0 ~ /iLO/)\
{ cmd=sprintf("curl -s \
-F \"token='$PUSHOVER_API_TOKEN'\" \
-F \"user='$PUSHOVER_USER'\" \
-F \"message=iLO4: %s (%s)\" \
-F \"title=homespot (iLO4)\" https://api.pushover.net/1/messages.json",$9,$11); \
system(cmd)}}'
Alles anzeigen
Wäre toll, wenn ihr da mal einen Blick drauf werfen könntet, danke sehr.
Grüße M.