특정 단위의 저널 항목을 지우려면 어떻게해야합니까?


18

며칠 동안 파이썬 스크립트를 작성하고 시스템 단위 파일을 작성했습니다. 테스트하는 동안 스크립트는 저널링에 많은 오류를 기록했습니다. 완료되었으므로 저널링에서 해당 오류를 지우고 싶습니다.

여기에 설명 된대로 전체 저널을 지우는 방법에는 여러 가지가 있습니다. 을 사용 하고 사용 하고 /etc/systemd/journald.conf에서 임시 로 매우 낮은 값 으로 설정 하는 것을 포함하여 journalctl을 지우는 방법 .journalctl --vacuum-time=2djournalctl --vacuum-size=500MSystemMaxUse=

이 모든 것이 전체 저널을 지우고 모든 단위에 영향을 미치는 것으로 보입니다. 단일 장치의 항목을 지우면됩니다. 이게 가능해?


가능한 접근 방법은 libsystemd의 저널 기능 을 사용하여 프로그램 을 작성하여 제거하려는 항목없이 저널 파일을 다시 작성하는 것입니다.
Mathias Rav

답변:


6

항목을 제거하려는 저널 파일에서 Python 3 프로그램 copy_journal.py 를 사용하십시오 /var/log/journal.

예를 들어, 다음에 대한 system.journal로그 항목없이 사본을 작성하려면 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

journalctl 매뉴얼 페이지에 따르면 "출력이 액세스 가능한 모든 저널 파일에서 회전되거나 현재 작성 중인지 여부에 상관없이 출력이 인터리브되기 때문에"그 가능성을 생각하지 않습니다.

그러나 'journalctl -u some.service'단위로 필터링 한 다음 cron을 사용하여 고유 스크립트를 사용하여 저널에서 로그 항목을 제거 할 수 있습니다.


7
저널에서 개별 로그 항목을 삭제하는 방법이 있음을 암시하는 것처럼 들립니다. 하나 있습니까? 그것은 매우 도움이 될 것입니다.
Tal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.