Bagaimana cara menghapus entri jurnalctl hanya untuk unit tertentu?


18

Saya menghabiskan beberapa hari menulis skrip python, dan membuat file unit systemd untuk itu. Selama pengujian, skrip mencatat banyak kesalahan ke journald. Saya ingin menghapus kesalahan-kesalahan dari journald sekarang setelah saya selesai.

Ada beberapa cara untuk menghapus seluruh jurnal, seperti dijelaskan di sini: Cara menghapus journalctl termasuk menggunakan journalctl --vacuum-time=2d, menggunakan journalctl --vacuum-size=500M, dan sementara pengaturan SystemMaxUse=di /etc/systemd/journald.conf ke nilai yang sangat rendah.

Semua ini tampaknya menghapus seluruh jurnal, mempengaruhi semua unit. Saya hanya perlu menghapus entri untuk satu unit. Apakah ini mungkin?


Pendekatan yang mungkin adalah menulis program menggunakan fungsi jurnal libsystemd untuk menulis ulang file jurnal tanpa entri yang ingin Anda hapus.
Mathias Rav

Jawaban:


6

Gunakan program Python 3 saya copy_journal.py pada file jurnal /var/log/journaltempat Anda ingin menghapus entri.

Misalnya, untuk membuat salinan system.journaltanpa entri log untuk 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

Saya tidak berpikir itu mungkin, karena menurut halaman manual journalctl "Output disisipkan dari semua file jurnal yang dapat diakses, apakah mereka diputar atau sedang ditulis".

Namun Anda dapat memfilternya dengan unit - 'jurnalctl -u some.service' dan kemudian mencoba untuk menghapus entri log dari jurnal dengan skrip Anda sendiri menggunakan cron.


7
Sepertinya Anda menyiratkan bahwa ada cara untuk menghapus entri log individual dari journald. Apakah ada satu? Itu akan sangat membantu.
Tal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.