grep para pesquisar error_log e email somente quando os resultados forem encontrados?

1

É possível usar o Grep para pesquisar um arquivo e enviar um email com base nos resultados?

Eu tenho usado

grep SEARCHSTRING /logs/error_log | mailx -s subject [email protected]

Mas eu não quero que ele envie um e-mail quando o Null for encontrado (Nenhum resultado encontrado)

    
por Dave Hamilton 03.02.2016 / 10:06

2 respostas

4

Você pode executar mailx se o comando grep devolver o sucesso, ou seja, a correspondência for encontrada:

body="$(grep SEARCHSTRING /logs/error_log)" && echo "$body" | mailx -s subject [email protected]

Salvando a saída de grep (se houver) para a variável body , se o comando grep for bem-sucedido, então mailx será executado com $body como o corpo da correspondência.

    
por 03.02.2016 / 10:17
1
output="$(grep SEARCHSTRING /logs/error_log)"
test -n "$output" && echo "$output" | mailx -s subject [email protected]
    
por 03.02.2016 / 10:17

Tags