output=$(grep line /var/log/file); [[ -n "$output" ]] && mail -s Log email@domain.tld
Oder Sie können dies zu einem Cron-Job machen. Wenn dann eine Ausgabe erstellt wird, werden die Benutzer per E-Mail benachrichtigt. Sie können die Datei / etc / aliases bearbeiten (und dann den Befehl newaliases ausführen), um E-Mails an Adressen zu senden, die nicht in der Box enthalten sind.
Ex of cron entry (Die Betreffzeile kann nicht eingestellt werden
1 0 * * * grep line /var/log/file
Oder Sie können das Hilfsprogramm ifne herunterladen. Dies ist wahrscheinlich das, was Sie möchten
grep line / var / log / file | ifne mail -s Log [email protected]
Das ifne Kommando gibt es aus dem Epel Repo für Centos und RHEL. Ich kann keinen Link zur Online-Manpage finden, aber dort ist er
ifne (1)
ifne (1)
NAME ifne - Befehl ausführen, wenn die Standardeingabe nicht leer ist
ÜBERSICHT ifne [-n] Befehl
BESCHREIBUNG ifne führt den folgenden Befehl genau dann aus, wenn die Standardeingabe nicht leer ist.
OPTIONEN -n Rückwärtsbetrieb. Führen Sie den Befehl aus, wenn die Standardeingabe leer ist.
Note that if the standard input is not empty, it is passed
through ifne in this case.
BEISPIEL finden. -name core | ifne mail -s "Core-Dateien gefunden" root
AUTOR Copyright 2008 von Javier Merino
Licensed under the GNU GPL
2008-05-01 ifne(1)
ifne
ist immoreutils
Paket in Ubuntu zu finden. Leider bringt dieses Paket auchparallel
Konflikte mit demparallel
Befehl aus demparallel
Paket mit sich."man mail" sagt mir, dass das Argument -E das Versenden von Mails anhält, wenn body leer ist. funktioniert gut für mich.
quelle
mail
odermailx
-Befehl liefern . Diebsd-mailx
undheirloom-mailx
Pakete bieten beide einemailx
mit der-E
Option hier beschrieben.grep "find me" /var/log/something | mail -s "That text you were looking for is now in the logs" -E [email protected]
Siehe /unix//a/100720/27458
Verwenden Sie einfach ifne :
quelle