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, потом действуем, а не сносим наугад.