Я не смог найти в Google какой-либо безопасный способ очистить журнал systemd. Кто-нибудь знает какой-либо безопасный и надежный способ сделать это?
Допустим, я экспериментировал с чем-то, и мои журналы были загромождены различными сообщениями об ошибках. Кроме того, я показываю свой журнал на рабочем столе с помощью Conky. Я действительно не хочу видеть эти ошибки, поскольку они напоминают мне ужасный день, когда я исправлял эти вещи, я хочу чувствовать себя свежим человеком после этого ужаса. Я думаю, что все согласятся, что это веская причина для очистки журналов: P.
источник
journalctl --vacuum-size=1K
затемjournalctl
все еще показывает путь больше, чем 1K. Он показывает все сообщения с момента последней загрузки.journalctl --flush --rotate
раньше,journalctl --vacuum-time=1s
и это убрало больше вещей, хотя все еще не все.Вы обычно не очищаете журнал самостоятельно. Это управляется самим systemd, и старые журналы чередуются по мере поступления новых данных. Правильно было бы запланировать в журнале только столько данных, сколько вам интересно. Наиболее обычная настройка - это общий диск. пространство, которое разрешено занимать. Как только он пересечет эту границу, он начнет разбрасывать старые записи, чтобы оставаться вблизи этого значения.
Вы можете установить это
/etc/systemd/journald.conf
так:источник
MaxRetentionSec
вместоSystemMaxUse
. Смотритеman journald.conf
для более подробной информации.В ответе Майкла не хватает только одного: очистка удаляет только архивные журнальные файлы, а не активные. Чтобы избавиться от всего, нужно сначала повернуть файлы, чтобы последние записи были перемещены в неактивные файлы.
Таким образом, полный ответ на удаление всех записей, кажется,
(Обратите внимание, что вы не можете объединить это в одну
journalctl
команду.)Кстати, в некоторых дистрибутивах journald настроен так, что он записывает логи на disk (
/var/log/journal
), а другие хранят логи в памяти (/run/log/journal
). Я ожидаю, что в некоторых случаях может понадобиться использоватьjournalctl --flush
сначала, чтобы удалить все.Если у вас нет
--rotate
версии, вы можете использовать--since
аргумент для фильтрации записей:источник
На Arch Linux, ближе всего я получил:
sudo systemctl restart systemd-journald
В моей системе каждый файл журнала имеет размер 8 МБ, и все вышеперечисленное очищается, кроме 3, что приводит к общему размеру ~ 25 МБ.
Мой вариант использование было отключив корову для BTRFS (только для каталога журнала и подкаталогов):
sudo chattr +C /var/log/journal/*
. Проблема в том, что атрибут устанавливается только на вновь созданные файлы, поэтому возникает желание очистить журнал.источник
SystemMaxUse=1K
, перезапустилsystemd-journald
, но journalctl по-прежнему показывает записи, которые я хочу пропустить. Как этот прогресс от плоских текстовых файлов?Так как
--vacuum-time
и--vacuum-size
ничего не сделал для меня, я сделал следующее:Это не правильно, но это сработало.
источник
/run/log
.Очень грубый метод очистки всего журнала:
Вы также можете использовать в
--vacuum-size
качестве Майкла Mentoined.источник
systemctl restart systemd-journald
.И --rotate, и --vacuum-time = 1s не работали для меня на CentOS. Я смог очистить это так:
источник
./journal
. Этиjournalctl
команды работают только в самом последнем. Поэтому мне пришлось удалить старый каталог вручную, и это безопасно. После я просто ограничить размер в журнале конф.Сделайте резервную копию на случай, если она понадобится вам в будущем:
cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
Очистить файл:
cd /run/log/journal/<temp-string>/
>system.journal
Проверьте, чтобы увидеть последние журналы:
journalctl -xe
источник
journalctl -b
покажет только с самой последней загрузки. Вы также можете использовать-b -1
и-b -2
т. Д. Ваш ужасный день все еще там, но вам не нужно его видеть, если вам не нужно.источник
Мой предыдущий ответ только что был удален за "дублирование". Что ж, извините за то, что не достаточно ясно в моем предыдущем ответе, но это отличалось от существующих ответов. Итак, вот более продуманная версия:
journalctl -m --vacuum-time=1s
сделал трюк для меня. Пожалуйста, обратите внимание на-m
флаг , он объединяет все ваши журналы, а затем очищает их. Без-m
флага это ничего не очистило в моем случае (на CentOS-7).Надеюсь, это поможет.
источник