Làm cách nào để xóa mục nhật ký cho một đơn vị cụ thể?


18

Tôi đã dành vài ngày để viết một kịch bản python và tạo một tệp đơn vị systemd cho nó. Trong quá trình thử nghiệm, tập lệnh đã ghi rất nhiều lỗi vào journald. Tôi muốn xóa những lỗi đó khỏi journald ngay bây giờ.

Có một số cách để xóa toàn bộ tạp chí, như được mô tả ở đây: Cách xóa tạp chí bao gồm sử dụng journalctl --vacuum-time=2d, sử dụng journalctl --vacuum-size=500Mvà tạm thời đặt SystemMaxUse=trong /etc/systemd/journald.conf thành một giá trị rất thấp.

Tất cả những điều này xuất hiện để xóa toàn bộ tạp chí, có hiệu lực tất cả các đơn vị. Tôi chỉ cần xóa các mục cho một đơn vị. Điều này có thể không?


Một cách tiếp cận có thể là viết một chương trình sử dụng các hàm nhật ký của libsystemd để viết lại tệp nhật ký mà không cần xóa các mục bạn muốn xóa.
Mathias Rav

Câu trả lời:


6

Sử dụng chương trình Python 3 của tôi copy_journal.py trên các tệp nhật ký /var/log/journalmà bạn muốn xóa các mục nhập.

Ví dụ: để tạo một bản sao system.journalkhông có mục nhật ký cho 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

Tôi không nghĩ rằng khả năng sở hữu của nó, bởi vì theo trang nhật ký của người đàn ông "Đầu ra được xen kẽ từ tất cả các tệp nhật ký có thể truy cập, cho dù chúng được xoay hay đang được viết".

Tuy nhiên, bạn có thể lọc nó theo một đơn vị - 'Tạp chí -u some.service' và sau đó thử xóa các mục nhật ký khỏi tạp chí bằng tập lệnh của riêng bạn bằng cron.


7
Có vẻ như bạn đang ám chỉ rằng có một cách để xóa các mục nhật ký riêng lẻ khỏi journald. Có một cái không? Điều đó sẽ rất hữu ích.
Tal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.