output=$(grep line /var/log/file); [[ -n "$output" ]] && mail -s Log email@domain.tld
Lub możesz przekształcić to w zadanie crona, a następnie, jeśli przyniesie ono jakieś wyniki, wyśle wiadomość e-mail do użytkowników. Możesz edytować plik / etc / aliases (a następnie uruchomić polecenie newaliases), aby wysłać pocztę na adres, którego nie ma w skrzynce.
Ex of cron entry (Nie będziesz mógł ustawić tematu linii na thogh
1 0 * * * grep line /var/log/file
Lub możesz uzyskać narzędzie ifne - prawdopodobnie tego właśnie chcesz
grep line / var / log / file | ifne mail -s Zaloguj [email protected]
Polecenie ifne dostępne w repozytorium epel dla centos i RHEL. Nie mogę znaleźć linku do strony podręcznika online, ale jest
ifne (1)
ifne (1)
NAME ifne - Uruchom polecenie, jeśli standardowe wejście nie jest puste
SYNOPSIS polecenie ifne [-n]
OPIS ifne uruchamia następujące polecenie wtedy i tylko wtedy, gdy standardowe wejście nie jest puste.
OPCJE -n Operacja odwrotna. Uruchom polecenie, jeśli standardowe wejście jest emp.
Note that if the standard input is not empty, it is passed
through ifne in this case.
PRZYKŁAD znajdź. -nazwa rdzenia | ifne mail -s „Znaleziono podstawowe pliki” root
AUTOR Copyright 2008 Javier Merino
Licensed under the GNU GPL
2008-05-01 ifne(1)
ifne
znajduje się wmoreutils
pakiecie w Ubuntu. Niestety pakiet ten powoduje równieżparallel
konflikt zparallel
poleceniem zparallel
pakietu.„man mail” mówi mi, że argument -E przestaje wysyłać maile, jeśli ciało jest puste. działa dobrze dla mnie.
źródło
mail
lubmailx
.bsd-mailx
Iheirloom-mailx
pakiety zarówno dostarczeniemailx
z-E
opcji opisanych tutaj.grep "find me" /var/log/something | mail -s "That text you were looking for is now in the logs" -E [email protected]
Zobacz /unix//a/100720/27458
Wystarczy użyć ifne :
źródło