Диск заполнен на 100%
Вопрос
Мониторинг сообщает: корневой раздел заполнен на 100%, сервис падает. Что делаешь по шагам?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Оценить: `df -h` и `df -i`, место или inode
Найти крупное: `du -xh / --max-depth=1 | sort -h`, затем вглубь; обычно логи, кеши, дампы, docker
Проверить удалённые, но открытые файлы: `lsof +L1`
Быстро освободить безопасно: обнулить лог через `: > file` или `truncate`, а не `rm` открытого файла; `journalctl --vacuum-size`, `docker system prune` с пониманием
Устранить причину: logrotate, лимиты журнала, алерт на 80%
Если нужно место надолго: расширить диск или том LVM онлайн
Что могут спросить следом
- Почему
rmлога может не помочь? - Что делать, если кончились inode?
- Как проверить, что занимает Docker?
Разбор
Сначала df -h и df -i, чтобы понять, место кончилось или inode. Если место, ищу, что выросло: du -xh / --max-depth=1 | sort -h, флаг -x не даёт уйти на другие ФС, дальше спускаюсь в самый большой каталог. Типичные виновники: логи приложений, журнал systemd, образы и логи Docker в /var/lib/docker, забытые дампы. Если du и df расходятся, проверяю lsof +L1: удалённый, но открытый файл держит место. Освобождаю аккуратно: лог, который пишет процесс, обнуляю через : > app.log или truncate -s 0, а не удаляю. Журнал чищу journalctl --vacuum-size=500M. Когда сервис ожил, устраняю причину: logrotate с ротацией по размеру, лимит SystemMaxUse для журнала, лимиты логов Docker, алерт на 80%. Если данных просто стало больше, расширяю диск или LVM-том онлайн.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.