Benachrichtigungen über syslogd (8)
Auf meinem OpenBSD-Server protokolliere und maile ich wichtige Nachrichten von meinen Webanwendungen, die facility local1 verwenden . Hier ist meine /etc/syslog.conf , um dies zu ermöglichen:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Beachten Sie, dass die while-Schleife jede Zeile von syslogd unendlich liest und sie dann per Echo an Mail weiterleitet. Das ist wichtig. Sobald das Echo seine Zeile ausgibt, beendet es die Pipe und sendet eine EOF per E-Mail, damit es die Protokollnachricht per E-Mail senden kann.
Mit anderen Worten, Sie können nicht direkt über syslogd auf E-Mails weiterleiten:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
weil syslogd so lange in die Pipe schreibt, bis sie selbst beendet oder ein HUP-Signal gesendet wird. Zu diesem Zeitpunkt würde mail den gesamten Satz von Protokollnachrichten in einer großen E-Mail senden.
Benachrichtigungen über newsyslog (8)
Das Planen von newsyslog in cron ist eine weitere Möglichkeit, Nachrichten langsamer oder in großen Mengen abzurufen.
Wenn Sie beispielsweise einen täglichen E- Mail- Auszug der Protokollnachrichten wünschen , setzen Sie das M- Flag und geben Sie eine Überwachungs-E-Mail-Adresse in /etc/newsyslog.conf an :
# logfile_name owner:group mode count size when flags monitor
/var/log/example.com root:wheel 640 7 * 24 M me@example.com
Dann plane newsyslog in crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
Die Option -m für newsyslog (8) lautet:
Überwachungsmodus; Es werden nur Einträge verarbeitet, die in Flags mit einem "M" gekennzeichnet sind. Für jede überwachte Protokolldatei wird jede Protokollausgabe seit der letzten Ausführung von newsyslog mit dem Flag -m an den Benutzer gesendet, der im Abschnitt zur Überwachung von Benachrichtigungen aufgeführt ist.