Neste guia, abordarei como visualizar os logs do systemd no Linux usando diferentes utilitários de linha de comando.
Observação: Os comandos mencionados neste guia são executados no Ubuntu. Eles funcionarão sem erros em todas as distribuições Linux que vêm com o sistema init systemd.
Métodos para visualizar logs systemctl
Existem duas abordagens para visualizar os logs do systemd no Linux:
O systemctl fornece os logs específicos do serviço mais recentes, enquanto o journalctl fornece logs detalhados de todo o sistema de todos os serviços e do serviço específico.
Explorarei os dois utilitários para visualizar os logs do systemd. Mas primeiro, vamos entender a principal diferença entre os comandos systemctl e journalctl.
O que é systemctl
Systemctl é um utilitário de linha de comando que gerencia serviços do systemd, como ativar ou desativar o serviço e visualizar o status. O status do systemctl O comando também imprime algumas linhas de log do serviço na parte inferior da saída, e esse log ocorre após a inicialização recente. No entanto, essas linhas de log do serviço são somente após a inicialização atual.
O que é jornalctl
O journalctl é um utilitário de linha de comando usado para imprimir os logs coletados pelo systemd. Comparado ao systemctl, ele fornece resultados detalhados com opções de filtragem. Este utilitário foi projetado para:
- Ler logs (o log mais antigo vem primeiro)
- Monitorar registros
- Filtre registros com base em horário, serviço ou usuário
O systemd coleta logs do kernel, serviços e daemons e os armazena em um local centralizado.
Como visualizar o log de um serviço usando systemctl
A sintaxe geral para encontrar o log de um serviço usando o sistemactl utilitário é mencionado abaixo.
status do systemctl [ Nome do Serviço ]Por exemplo, para visualizar as informações de registro do smbd.serviço use o comando fornecido abaixo.
status do systemctl smbd.service
Para obter saída sem paginação, adicione o –sem pager opção no comando.
status do systemctl smbd.service --no-pager
Como visualizar o log de um serviço usando journalctl
Para visualizar o log de um serviço específico do systemd, use jornalctl com o -em comando e serviço ou nome da unidade.
jornalctl -em [ Nome do Serviço ]No comando acima, o -em bandeira, abreviação de -unidade é usado para filtrar o jornalctl saída por um nome de unidade.
Por exemplo, para imprimir o log do pequeno daemon, vou substituir o [nome da unidade] com smbd.serviço .
jornalctl -em smbd.serviço
Na saída, pode-se ver que a entrada mais antiga vem primeiro e, em seguida, registra após cada inicialização ser listada.
Para obter a entrada mais recente, use primeiro -e abreviatura de –fim da página.
jornalctl -em smbd.serviço -e
Se você quiser omitir a paginação da saída, basta anexar o –sem pager nos comandos mencionados acima.
Para imprimir continuamente as entradas de log em tempo real -f abreviatura de -seguir .
jornalctl -em smbd.serviço -fA filtragem pode ser expandida ainda mais usando o sinalizador -b, abreviação de -bota , que imprime os logs com base na inicialização atual.
jornalctl -em [ nome da unidade ] -bVamos imprimir logs do smbd.serviço da inicialização recente.
jornalctl -em smbd.serviço -b
A saída acima se assemelha à saída que obtemos usando o status do systemctl comando.
Para obter uma visão geral detalhada do log, use o -x abreviatura de -Catálogo opção.
jornalctl -em smbd.serviço -xIsso anexará uma breve descrição do log.
Agora, para imprimir logs com base no tempo usando o journalctl, existem duas opções, -S abreviatura de -desde e -EM abreviatura de -até .
jornalctl -em [ nome da unidade ] -S '[ano-mês-dia] [horas:minutos:segundos]'Por exemplo, para visualizar os registros da unidade pequeno de 2024:01:30 12:05:00 .
jornalctl -em smbd.serviço -S '2024:01:30 12:05:00'
Conclusão
Para visualizar os logs do systemd de um serviço, existem dois utilitários principais, journalctl e systemctl. O journalctl foi projetado especificamente para visualizar os logs do systemd. Porém, o systemctl também possui a opção de imprimir o log do serviço. Para imprimir o registro de uso de um serviço, diárioctl -você [nome da unidade] e sistemactl [nome da unidade].