awk '$0!~/started/{print}' logfile | mail -s "Jobs not started" [email protected]
Eu gostaria de criar o shell script do Linux que lê um arquivo de log.
por exemplo Eu tenho arquivo de log com linhas:
Job: One(106) started.
Job: Two(107) started.
Job: Name(111) started.
Job: EXE(112) started.
Job: SMTG(117) started.
...........
.....
...
Eu quero criar scripts que verifiquem todos os trabalhos e enviem e-mails se o status do trabalho não for iniciado. O status do trabalho pode ser erro, bloqueado, parado e tudo mais. Não sei como escrever script para verificar exatamente se o status não foi iniciado.
awk '$0!~/started/{print}' logfile | mail -s "Jobs not started" [email protected]
grep -v 'Job:.*started.' yourfile.log | while read line; do
# your not started line is here
echo $line
done
Pequena explicação:
grep
lerá seu arquivo e filtrará as linhas que correspondem a um padrão, portanto, não corresponderemos às tarefas iniciadas. Então você está lendo linhas não iniciadas, você pode substituir echo $line
e enviar um email para lá.