Blog Linux Avante

Como limpar os registros do diário do systemd

3 de outubro de 2019

systemd tem seu próprio sistema de registro que fornece gerenciamento centralizado para registro de kernel e processos de usuário. Este artigo explica como limpar os arquivos de registro de diário do systemd.

systemd-journald é um serviço do sistema que coleta e armazena dados de registro. Esses dados de log são armazenados em /run/log/journal/MACHINE-ID/ (volátil - os dados de log do diário são armazenados na memória e são perdidos na reinicialização) ou em /var/log/journal/MACHINE-ID (persistente - o log de dados do diário é armazenado no disco). Em sistemas configurados para armazenar os dados de diário do systemd em disco, os logs podem ocupar uma quantidade considerável de espaço em disco após algum tempo.

Mas antes de tentar limpar os arquivos de registro de diário do systemd, vamos dar uma olhada em quanto espaço esses arquivos de registro realmente ocupam em seu sistema, usando o seguinte comando:

Comandos para usar no terminal

journalctl --disk-usage

Exemplo com saída:

$ journalctl --disk-usage
Archived and active journals take up 1.6G in the file system.

É importante notar que journalctl --disk-usage mostra a soma do uso do disco dos arquivos de diário arquivados e ativos, portanto, não mostrará 0 uso de espaço em disco, mesmo depois de limpar os arquivos de log do diário conforme mencionado abaixo.

Para remover todas as entradas de diário (incluindo arquivos de diário ativos, que são marcados como arquivados pelo comando --rotate), use:

Comandos para usar no terminal

sudo journalctl --rotate

sudo journalctl --vacuum-time=1s

Aqui:

  • --rotate pede ao daemon de diário para girar os arquivos de diário. A rotação do arquivo de diário faz com que todos os arquivos de diário atualmente ativos sejam marcados como arquivados e renomeados, para que nunca sejam gravados no futuro. Novos arquivos de diário (vazios) são criados em seu lugar. Sem isso, os arquivos de diário ativos não são removidos pelo comando --vacuum*=.

  • --vacuum-time=1s faz com que todos os arquivos de diário não contenham dados com mais de 1 segundo. Você pode alterar o período --vacuum-time para atender às suas necessidades, por ex. 1m por 1 minuto, 2h por 1 hora, 2weeks por 2 semanas, 4months por 4 meses.

Você pode usar --vacuum-size em vez de --vacuum-time (você também pode usar ambos ao mesmo tempo), para remover os arquivos de diário arquivados mais antigos até que o espaço em disco que eles usam fique abaixo do tamanho especificado. Especifique o valor --vacuum-size seguido pelos sufixos usuais "K", "M", "G" e "T", por exemplo journalctl --vacuum-size=100M para remover arquivos de diário arquivados até que o espaço em disco que eles usam caia abaixo de 100M.

Também quero observar que nas versões mais recentes do systemd (240 e mais recentes, usado por exemplo no Ubuntu 19.04 e mais recente), você pode combinar os comandos --vacuum*= e --rotate. Por exemplo, para girar arquivos de diário e remover arquivos de diário arquivados até que o espaço em disco que eles usam seja inferior a 500M, você pode usar:

Comandos para usar no terminal

sudo journalctl --rotate --vacuum-size=500M

Esses comandos são para uso sob demanda, quando você deseja limpar os logs do diário manualmente. Mas você também pode configurar o journald para limpar os logs arquivados depois de excederem um determinado tamanho no disco ou após um determinado período de tempo. Isso pode ser feito editando o arquivo de configuração do journald (/etc/systemd/journald.conf) e removendo o comentário e, em seguida, adicionando um valor a SystemMaxUse = (por exemplo: SystemMaxUse=100M para remover arquivos de diário arquivados até que o espaço em disco que eles usam caia abaixo de 100M) e/ou MaxFileSec= (.eg MaxFileSec=5day para fazer com que todos os arquivos de diário não contenham dados com mais de 5 dias).

Você pode gostar:

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.