Come posso cancellare le voci journalctl solo per un'unità specifica?


18

Ho trascorso alcuni giorni a scrivere uno script Python e creare un file di unità di sistema per esso. Durante il test, lo script ha registrato molti errori su journald. Vorrei cancellare quegli errori da Journald ora che ho finito.

Esistono diversi modi per cancellare l'intero journal, come descritto qui: Come cancellare journalctl incluso l'uso journalctl --vacuum-time=2d, l'uso journalctl --vacuum-size=500Me l'impostazione temporanea SystemMaxUse=in /etc/systemd/journald.conf su un valore molto basso.

Tutti questi sembrano cancellare l'intero diario, effettuando tutte le unità. Devo solo cancellare le voci per una singola unità. È possibile?


Un possibile approccio è scrivere un programma usando le funzioni journal di libsystemd per riscrivere il file journal senza le voci che si desidera rimuovere.
Mathias Rav

Risposte:


6

Utilizzare il mio programma Python 3 copy_journal.py sui file journal in /var/log/journalcui si desidera rimuovere le voci.

Ad esempio, per effettuare una copia system.journalsenza voci di registro per 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

Non credo sia possibile, perché secondo la pagina man journalctl "L'output è intercalato da tutti i file journal accessibili, sia che vengano ruotati che attualmente in fase di scrittura".

Puoi comunque filtrarlo per unità - 'journalctl -u some.service' e quindi provare a rimuovere le voci del registro dal journal con il tuo script usando cron.


7
Sembra che tu stia insinuando che esiste un modo per eliminare singole voci di registro da journald. Ce n'è uno? Questo sarebbe molto utile.
Tal
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.