Как правильно чистить логи в journald (systemd)

Столкнулся с тем, что логи в /var/log/journal/ стали занимать более гига.
$ journalctl --disk-usage 
Journals take up 1010.5M on disk.

Но при этом journalctl не содержит никаких параметров и опций, позволяющих удалить старые записи: например, сделанные до какой-то даты.
Порылся в конфиге /etc/systemd/journald.conf — там есть только про ограничения размеров журналов.
Ограничение я поставил, но journald журналы не обрезал.
Как корректно удалить излишки?
  • Вопрос задан
  • 40591 просмотр
Пригласить эксперта
Ответы на вопрос 6
lmrvsk
@lmrvsk
IT/Web
Для очистки логов по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб) можно использовать встроенные команды:
journalctl --vacuum-size=128M
journalctl --vacuum-time=1d
Ответ написан
icoz
@icoz Автор вопроса
На текущий момент нашел в сети только предложение тупо удалить содержимое папки /var/log/journal/.
Удалил у себя не всё, а только файлы "*.journal~".
Папка полегчала на 600М. Каких либо косяков в работе не вижу.
Но интересует именно чистка по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб).
Ответ написан
Комментировать
Acidter
@Acidter
По данному вопросу все хорошо расписано на Arch Wiki https://wiki.archlinux.org/index.php/Systemd_(%D0%...
Ответ написан
Комментировать
@yazon
Штатный logrotate не поможет?
Ответ написан
Zyamilon
@Zyamilon
$ pacman -Qi systemd
Название              : systemd
Версия                : 208-3
...
$ sudo systemctl start systemd-journal-flush

Description=Trigger Flushing of Journal to Persistent Storage
Используйте с остороностью.

Проверяем:
sudo journalctl --disk-usage
Ответ написан
Комментировать
@sur0k
Почему просто не добавить очистку журнала в crontab?
sudo crontab -e
там добавляем нужное расписание и вставляем команду по очистке. Например:
0 0 * * * journalctl --vacuum-time=1d
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы