Как очистить записи журнала для конкретного устройства?

Я провел несколько дней, написав скрипт python и создав для него файл unitd. Во время тестирования скрипт записывал много ошибок в journald. Я хотел бы очистить эти ошибки от журналиста сейчас, когда я закончил.

Существует несколько способов очистить весь журнал, как описано здесь: Как очистить журнал, включая использование journalctl --vacuum-time=2d , используя journalctl --vacuum-size=500M и временно установить SystemMaxUse= в / etc / systemd / journald.conf до очень низкого значения.

Кажется, что все они очищают весь журнал, производя все единицы. Мне просто нужно очистить записи для одного устройства. Это возможно?

Используйте мою программу 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 

Я не думаю, что это возможно, потому что, согласно странице man «journalctl», «Выходные данные чередуются со всеми доступными файлами журнала, независимо от того, были ли они повернуты или в настоящее время написаны».

Тем не менее, вы можете отфильтровать его на единицу – «journalctl -u some.service», а затем попытаться удалить записи журнала из журнала с помощью собственного скрипта с помощью cron.