TIL — ncdu и чистка раздутых логов journald

Опять прилетел алерт про забитый диск. В прошлый раз был Docker, в этот раз решил не гадать, а сразу посмотреть, что именно жрёт место. Лучший инструмент для этого — ncdu, интерактивный анализатор по папкам.

apt install ncdu
ncdu /

Он сканирует и показывает дерево, отсортированное по размеру. Стрелками проваливаешься в самую толстую папку — и так до виновника. На этот раз дорожка привела в /var/log/journal: системные логи journald раздулись до 3.8 ГБ. За пару месяцев аптайма оно копится незаметно.

Чистится это штатно, через journalctl. По размеру — оставить не больше 200 МБ:

journalctl --vacuum-size=200M

Или по возрасту — выкинуть всё старше недели:

sudo journalctl --vacuum-time=7d

Команда отчитывается, какие файлы удалила и сколько освободила. Полтора гига ушло мгновенно.

Чтобы не возвращаться к этому каждый месяц, прописал лимит в /etc/systemd/journald.conf:

[Journal]
SystemMaxUse=200M

И перезапустил: systemctl restart systemd-journald. Теперь journald сам себя держит в рамках. Мораль прежняя — сначала смотрим ncdu, потом действуем, а не сносим наугад.