
Я не смог найти в гугле безопасный способ очистить журнал 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 --flush
first, чтобы все удалить.
Если в вашей версии его нет --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
Это неправильно, но это сработало.