Linux

Очистка journald: как освободить место в Linux и ускорить журнал

Гайд покажет, как безопасно почистить journald, настроить ротацию и ограничить объём логов, чтобы освободить место и ускорить работу системы без потери важных событий.

Обновлено 28 апреля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+CentOS Stream 9Fedora 38+

Введение / Зачем это нужно

Системный журнал journald собирает события и логи всех служб, но со временем может занимать гигабайты. Это замедляет поиск по логам, усложняет мониторинг и отнимает место, которого всегда не хватает. В этом гайде вы научитесь безопасно очищать journald, настроить автоматическую ротацию и ограничить объём, чтобы система работала стабильно, а важные события не терялись.

Требования / Подготовка

  • Система на базе systemd (Ubuntu 22.04+, Debian 11+, CentOS Stream 9, Fedora 38+).
  • Права суперпользователя (sudo или root) для редактирования конфигурации и перезапуска служб.
  • Утилиты journalctl и systemd-journald установлены по умолчанию — дополнительная установка не требуется.

Шаг 1: Проверить текущий размер journald

Узнайте, сколько места уже занято, чтобы выбрать разумный лимит.

journalctl --disk-usage

Команда покажет объём в байтах. Если журнал занимает больше 1–2 ГБ, очистка и ограничение точно помогут.

Шаг 2: Однократная очистка старых записей

Выберите один из вариантов в зависимости от вашей задачи.

  • Ограничить по размеру (оставить не более 1 ГБ):
sudo journalctl --vacuum-size=1G
  • Удалить записи старше 30 дней:
sudo journalctl --vacuum-time=30d
  • Оставить не более 5000 файлов (полезно при большом объёме мелких записей):
sudo journalctl --vacuum-files=500

💡 Совет: Комбинируйте параметры, например --vacuum-size=500M --vacuum-time=14d, чтобы срезать и по объёму, и по времени.

Шаг 3: Настроить постоянные лимиты в journald.conf

Однократная очистка не решит проблему, если лимиты не заданы. Откройте конфигурацию:

sudo nano /etc/systemd/journald.conf

Раскомментируйте или добавьте параметры:

[Journal]
# Максимальный объём журнала на диске
SystemMaxUse=1G
# Максимальный объём для runtime-логов (в /run)
RuntimeMaxUse=128M
# Хранить записи не дольше 30 дней (можно использовать weeks, months)
MaxRetentionSec=30d
# Не хранить логи для загрузок, которые больше MaxRetentionSec
SystemKeepFree=500M

Сохраните файл и перезапустите службу:

sudo systemctl restart systemd-journald

Журнал начнёт ротироваться автоматически с учётом новых лимитов.

Шаг 4: Проверить результат и настроить мониторинг

Убедитесь, что размер стабилизировался:

journalctl --disk-usage

Если журнал всё ещё растёт быстро:

  • проверьте, не пишет ли одна из служб слишком много отладочных строк (увеличьте уровень логов в её конфигурации);
  • настройте фильтрацию или исключение шумных юнитов через journald.conf (например, RateLimitIntervalSec, RateLimitBurst).

Для дополнительной ротации логов приложений, которые journald не контролирует полностью, используйте logrotate.

Возможные проблемы

  • Ошибка «Failed to rotate journal: No space left on device» — освободите место в /var или увеличьте SystemKeepFree, чтобы journald мог создавать временные файлы при ротации.
  • Логи перестали записываться после правки конфига — проверьте синтаксис journald.conf и статус службы: systemctl status systemd-journald.
  • Записи старше лимита не удаляются — убедитесь, что MaxRetentionSec задан и перезапустите systemd-journald; vacuum учитывает только те записи, которые не нужны для заданных ограничений.

Часто задаваемые вопросы

Безопасно ли удалять логи journald вручную через rm?
Как узнать, сколько места занимает journald?
Почему journald снова быстро растёт после очистки?
Останутся ли старые логи после перезагрузки?

Полезное

Проверить занятое место и составить план
Очистить старые записи однократно
Настроить постоянные лимиты
Проверить результат и мониторинг