Como limpo entradas de diário de diário apenas para uma unidade específica?


18

Passei alguns dias escrevendo um script python e criando um arquivo de unidade systemd para ele. Durante o teste, o script registrou muitos erros no diário. Gostaria de limpar esses erros do journald agora que terminei.

Existem várias maneiras de limpar o diário inteiro, como descrito aqui: Como limpar o journalctl, incluindo o uso journalctl --vacuum-time=2d, o uso journalctl --vacuum-size=500Me a configuração temporária SystemMaxUse=no /etc/systemd/journald.conf com um valor muito baixo.

Tudo isso parece limpar o diário inteiro, afetando todas as unidades. Eu só preciso limpar as entradas para uma única unidade. Isso é possível?


Uma abordagem possível é escrever um programa usando as funções de diário do libsystemd para reescrever o arquivo de diário sem as entradas que você deseja remover.
Mathias Rav

Respostas:


6

Use meu programa Python 3 copy_journal.py nos arquivos de diário /var/log/journaldos quais você deseja remover as entradas.

Por exemplo, para fazer uma cópia system.journalsem entradas de log para NetworkManager.service:

$ journalctl --file=system.journal | wc
    167    1934   18825
$ journalctl --file=system.journal | grep -v NetworkManager | wc
     77     881    8421
$ python3 copy_journal.py --remove-unit=NetworkManager.service system.journal system-without-nm.journal
$ journalctl --file=system-without-nm.journal | wc
     77     881    8421

-1

Eu não acho que isso seja possível, porque de acordo com a página de manual do journalctl "A saída é intercalada de todos os arquivos de diário acessíveis, estejam eles rodados ou atualmente sendo gravados".

No entanto, você pode filtrá-lo por uma unidade - 'journalctl -u some.service' e tentar remover as entradas de log do diário com seu próprio script usando cron.


7
Parece que você está sugerindo que existe uma maneira de excluir entradas de log individuais do journald. Existe um? Isso seria muito útil.
Tal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.