
Não consegui encontrar no Google nenhuma maneira segura de limpar o diário do systemd. Alguém conhece alguma maneira segura e confiável de fazer isso?
Digamos que eu estava experimentando algo e meus logs ficaram cheios de várias mensagens de erro. Além disso, estou exibindo meu diário na minha área de trabalho usando o Conky. Eu realmente não quero ver esses erros, pois eles me lembram de um dia horrível em que eu estava consertando essas coisas, quero me sentir um homem novo depois desse horror. Acho que todos concordarão que este é um motivo válido para limpar os logs :P.
Responder1
O método de automanutenção consiste em aspirar as toras por tamanho ou tempo.
Retenha apenas os últimos dois dias:
journalctl --vacuum-time=2d
Retenha apenas os últimos 500 MB:
journalctl --vacuum-size=500M
man journalctl
Para maiores informações.
Responder2
Normalmente você não limpa o diário sozinho. Isso é gerenciado pelo próprio systemd e os logs antigos são alternados à medida que novos dados chegam. A coisa correta a fazer seria agendar o diário para manter apenas a quantidade de dados de seu interesse. espaço que é permitido ocupar. Depois de cruzar esse limite, ele começará a lançar entradas antigas para ficar próximo desse valor.
Você pode definir isso em/etc/systemd/journald.conf
igual a:
SystemMaxUse=100M
Isso será aplicado na próxima reinicialização ou reinicialização do serviço journald:
$ systemctl restart systemd-journald
Responder3
A resposta de Miguelestá faltando uma coisa: a aspiração remove apenas os arquivos de diário arquivados, não os ativos. Para se livrar de tudo, você precisa primeiro girar os arquivos para que as entradas recentes sejam movidas para arquivos inativos.
Então, a resposta completa para removertodosentradas parece ser
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
(Observe que você não pode combinar isso em um journalctl
comando.)
A propósito, algumas distribuições têm o journald configurado para gravar logs no disco ( /var/log/journal
) enquanto outras mantêm os logs na memória ( /run/log/journal
). Espero que em alguns casos seja necessário usar sudo journalctl --flush
primeiro para remover tudo.
Se não tiver --rotate
na sua versão, você pode usar o --since
argumento para filtrar entradas:
--since "2019-01-30 14:00:00"
--since today
Responder4
Como --vacuum-time
e --vacuum-size
não fez nada por mim, fiz o seguinte:
$ sudo find /var/log/journal -name "*.journal" | xargs sudo rm
$ sudo systemctl restart systemd-journald
Não está certo, mas funcionou.