===== Exemplos do comando journalctl =====
==== Nível Básico ====
* **Exibir todos os logs do sistema:**
- journalctl
- Exibe todos os logs do sistema desde o início do `journal`.
* **Exibir logs mais recentes (similar ao `tail`):**
- journalctl -e
- Exibe os logs mais recentes, direto para o final do arquivo de logs.
* **Exibir logs de boot anterior:**
- journalctl -b -1
- Exibe os logs do boot anterior.
* **Exibir logs de um serviço específico:**
- journalctl -u nome_servico
- Exibe os logs do serviço `nome_servico`.
* **Monitorar logs em tempo real (similar ao `tail -f`):**
- journalctl -f
- Exibe os logs em tempo real à medida que são gerados.
* **Exibir logs do sistema desde o último boot:**
- journalctl -b
- Mostra todos os logs do sistema desde o último boot.
==== Nível Intermediário ====
* **Filtrar logs por nível de prioridade (por exemplo, erros):**
- journalctl -p err
- Exibe apenas logs de erros (nível `err` ou superior).
* **Exibir logs de uma data específica:**
- journalctl --since "2024-10-10 12:00:00"
- Exibe os logs desde `10 de outubro de 2024, às 12:00`.
* **Exibir logs dentro de um intervalo de tempo:**
- journalctl --since "2024-10-10" --until "2024-10-12"
- Exibe os logs entre as datas `10 de outubro de 2024` e `12 de outubro de 2024`.
* **Exibir logs do kernel (dmesg logs):**
- journalctl -k
- Exibe apenas os logs do kernel.
* **Exibir logs de todos os boots do sistema:**
- journalctl --list-boots
- Exibe uma lista com todos os boots do sistema, com identificadores para cada boot.
* **Exibir logs de um serviço específico desde o último boot:**
- journalctl -u nome_servico -b
- Exibe os logs do serviço `nome_servico` desde o último boot.
* **Exibir logs de uma unidade de tempo específica (por exemplo, última hora):**
- journalctl --since "1 hour ago"
- Mostra os logs gerados na última hora.
==== Nível Avançado ====
* **Limitar o número de linhas exibidas:**
- journalctl -n 50
- Exibe apenas as últimas `50` linhas de logs.
* **Exibir logs com prioridade superior ou igual a "warning":**
- journalctl -p warning
- Exibe logs de aviso (`warning`) ou superior.
* **Filtrar logs por unidade de sistema (systemd):**
- journalctl -u sshd.service
- Exibe apenas os logs do serviço `sshd.service`.
* **Filtrar logs com base no PID (Process ID):**
- journalctl _PID=1234
- Exibe os logs gerados pelo processo com PID `1234`.
* **Exibir logs de um usuário específico:**
- journalctl _UID=1000
- Exibe logs gerados por processos executados pelo usuário com UID `1000` (normalmente o primeiro usuário não-root do sistema).
* **Excluir mensagens repetitivas dos logs:**
- journalctl --dmesg --no-pager
- Exibe os logs do kernel sem repetições de mensagens, útil para logs contínuos de hardware.
* **Exibir logs de falhas recentes de serviços:**
- journalctl --failed
- Exibe os logs dos serviços que falharam recentemente.
* **Exibir logs de eventos de reboot do sistema:**
- journalctl -u reboot
- Exibe logs relacionados a eventos de reinicialização do sistema.
==== Nível Especializado ====
* **Limpar os logs armazenados no journal:**
- sudo journalctl --vacuum-time=2weeks
- Remove todos os logs mais antigos que duas semanas para liberar espaço em disco.
* **Compactar o tamanho dos logs para um limite específico:**
- sudo journalctl --vacuum-size=500M
- Mantém os logs armazenados no `journal` até um limite de `500 MB`, removendo os mais antigos.
* **Recarregar os logs do journal manualmente após alterações:**
- sudo systemctl restart systemd-journald
- Reinicia o serviço `systemd-journald` para recarregar as configurações de log.
* **Exibir logs de um cgroup específico:**
- journalctl -M máquina_virtual -u nome_servico
- Exibe logs do serviço `nome_servico` dentro de uma máquina virtual ou container com `cgroup`.
* **Buscar logs por mensagem específica:**
- journalctl | grep "mensagem_erro"
- Busca por uma string ou padrão específico, como "mensagem_erro", nos logs do sistema.
* **Exportar logs para um arquivo externo:**
- journalctl -u nome_servico > logs_servico.txt
- Exporta os logs do serviço `nome_servico` para um arquivo `logs_servico.txt`.
* **Verificar logs de kernel persistentes após reinicializações:**
- journalctl -k -b -1
- Exibe logs do kernel da inicialização anterior ao boot atual.
* **Filtrar logs por chave de valor específica (ex.: mensagem do sistema):**
- journalctl MESSAGE_ID=key_value
- Exibe logs com base em uma `MESSAGE_ID` específica.
* **Ativar logs persistentes no journal:**
- **Editar o arquivo de configuração do journal:**
sudo nano /etc/systemd/journald.conf
- Mudar a linha `#Storage=auto` para `Storage=persistent`
- **Reiniciar o serviço do journal:**
sudo systemctl restart systemd-journald
- Habilita logs persistentes, permitindo que eles sejam salvos após reinicializações.