Você pode usar este comando retail
: link
Ele suporta expressões regulares para iniciar e parar a saída, então você provavelmente quer algo como:
retail -r STARTPATTERN mylogfile
retail -r STARTPATTERN -u ENDPATTERN -f mylogfile
A opção -r
encontra explicitamente a última instância do padrão, que geralmente é o que você deseja.
Veja também: link
Aqui está um exemplo usando um log de erros do Apache onde o Apache foi reiniciado várias vezes, usando retail
para extrair apenas a reinicialização final:
$ grep -c "Apache.*resuming normal operations" /var/web/logs/error.log
8
$ retail -r "Apache.*resuming normal operations" /var/web/logs/error.log
[Wed Jul 6 17:12:55.534567 2016] [mpm_prefork:notice] [pid 17965] AH00163: Apache/2.4.4 (Unix) OpenSSL/1.0.1e configured -- resuming normal operations
[Wed Jul 6 17:12:55.534582 2016] [mpm_prefork:info] [pid 17965] AH00164: Server built: Mar 26 2016 12:22:17
[Wed Jul 6 17:12:55.534598 2016] [core:notice] [pid 17965] AH00094: Command line: '/usr/local/apache2/bin/httpd'
Ou você pode usar uma regex de "(SIGTERM.* shutting down|SIGHUP.*restart)"
para mostrar tudo após a última tentativa de desligamento ou reinicialização.