Comment effacer les entrées de journalctl pour une unité spécifique uniquement?

19

J'ai passé quelques jours à écrire un script python et à créer un fichier d'unité systemd pour cela. Pendant les tests, le script a enregistré de nombreuses erreurs dans journald. Je voudrais effacer ces erreurs du journal maintenant que j'ai fini.

Il existe plusieurs façons d'effacer l'intégralité du journal, comme décrit ici: Comment effacer journalctl, notamment en utilisant journalctl --vacuum-time=2d, en utilisant journalctl --vacuum-size=500Met en définissant temporairement SystemMaxUse=dans /etc/systemd/journald.conf une valeur très faible.

Tous ces éléments semblent effacer tout le journal, affectant toutes les unités. J'ai juste besoin d'effacer les entrées pour une seule unité. Est-ce possible?

Tal
la source
Une approche possible consiste à écrire un programme à l'aide des fonctions de journal de libsystemd pour réécrire le fichier journal sans les entrées que vous souhaitez supprimer.
Mathias Rav

Réponses:

6

Utilisez mon programme Python 3 copy_journal.py sur les fichiers journaux dans /var/log/journallesquels vous souhaitez supprimer les entrées.

Par exemple, pour faire une copie des system.journalentrées sans journal pour 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
Mathias Rav
la source
-1

Je ne pense pas que ce soit possible, car selon la page de manuel journalctl "La sortie est entrelacée de tous les fichiers de journal accessibles, qu'ils soient tournés ou en cours d'écriture".

Vous pouvez cependant le filtrer par une unité - 'journalctl -u some.service' puis essayer de supprimer les entrées de journal du journal avec votre propre script en utilisant cron.

Recoba20
la source
7
Il semble que vous sous-entendiez qu'il existe un moyen de supprimer des entrées de journal individuelles de journald. Est-ce qu'il y a un? Ce serait très utile.
Tal