Como ver as últimas x linhas do log do serviço systemctl

3

Estou procurando uma maneira de simplesmente imprimir as últimas linhas X de um serviço systemctl no Debian. Eu gostaria de instalar este código em um script, que usa as entradas de log impressas e mais recentes. Eu encontrei este post, mas eu não foi capaz de modificá-lo para os meus propósitos.

Atualmente estou usando este código, que está me dando um pequeno trecho dos arquivos de log:

journalctl --unit=my.service --since "1 hour ago" -p err

Para dar um exemplo de como o resultado deve parecer, basta digitar o comando acima para qualquer serviço e rolar até o final do log. Em seguida, copie as últimas 300 linhas a partir da parte inferior.

Minha ideia é usar egrep ex. egrep -m 700 . mas eu não tive sorte desde então.

    
por user3191334 06.02.2018 / 09:14

4 respostas

15
journalctl --unit=my.service -n 100 --no-pager
    
por 06.02.2018 / 18:20
3

Basta enviar a saída para tail :

journalctl --unit=my.service | tail -n 300

O comando tail imprime as últimas linhas (10 por padrão) recebidas em stdin para stdout.

    
por 06.02.2018 / 09:34
1

desde que a solução de comando tail sempre forneceu.Eu tentei usando o sed commmand e funcionou bem

Abaixo, o comando exibirá as últimas 300 linhas

journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' 
    
por 06.02.2018 / 17:13
0

Se você quiser ver o último n número de linhas e ver as novas mensagens conforme elas são impressas no log, tente isto:

journalctl -u <service name> -n <number of lines> -f

Onde -n indica o número de linhas que você gostaria de ver na parte final do log e -f especifica que você gostaria de seguir o log conforme ele é alterado.

    
por 04.12.2018 / 01:52