Как очистить журналctl

Как очистить журналctl

Я не смог найти в гугле безопасный способ очистить журнал systemd. Кто-нибудь знает безопасный и надежный способ сделать это?

Допустим, я экспериментировал с чем-то, и мои журналы засорились различными сообщениями об ошибках. Более того, я вывожу свой журнал на рабочий стол с помощью Conky. Я действительно не хочу видеть эти ошибки, поскольку они напоминают мне об ужасном дне, когда я чинил это, я хочу чувствовать себя свежим человеком после этого ужаса. Я думаю, все согласятся, что это веская причина очистить журналы :P .

решение1

Метод самостоятельного обслуживания заключается в чистке бревен пылесосом по размеру или времени.

Сохраните только последние два дня:

journalctl --vacuum-time=2d

Сохранить только последние 500 МБ:

journalctl --vacuum-size=500M

man journalctlЧтобы получить больше информации.

решение2

Обычно вы не очищаете журнал самостоятельно. Этим управляет сама systemd, и старые журналы стираются по мере поступления новых данных. Правильным решением было бы запланировать journald на сохранение только тех данных, которые вам интересны. Чаще всего приходится настраивать общее дисковое пространство, которое ему разрешено занимать. Как только он пересечет эту границу, он начнет выбрасывать старые записи, чтобы оставаться около этого значения.

Вы можете установить это в/etc/systemd/journald.confвот так:

SystemMaxUse=100M

Это будет применено при следующей перезагрузке или перезапуске службы journald:

$ systemctl restart systemd-journald

решение3

Ответ Майклане хватает одного: очистка удаляет только архивные файлы журнала, а не активные. Чтобы избавиться от всего, нужно сначала ротировать файлы, чтобы последние записи были перемещены в неактивные файлы.

Итак, полный ответ на удалениевсезаписи, кажется,

sudo journalctl --rotate
sudo journalctl --vacuum-time=1s

(Обратите внимание, что объединить это в одну команду невозможно journalctl.)

Кстати, в некоторых дистрибутивах journald настроен так, что он записывает логи на диск ( /var/log/journal), а в других сохраняет логи в памяти ( /run/log/journal). Я предполагаю, что в некоторых случаях может потребоваться использовать sudo journalctl --flushfirst, чтобы все удалить.

Если в вашей версии его нет --rotate, вы можете использовать --sinceаргумент для фильтрации записей:

--since "2019-01-30 14:00:00"
--since today

решение4

Поскольку --vacuum-timeи --vacuum-sizeэто мне ничего не дало, я сделал следующее:

$ sudo find /var/log/journal -name "*.journal" | xargs sudo rm 
$ sudo systemctl restart systemd-journald

Это неправильно, но это сработало.

Связанный контент