Расхождение между df и du часто связано с тем, что df показывает использование всего пространства на файловой системе, включая файлы, которые были удалены, но ещё открыты процессами, а du считает только видимые файлы.
Диск заполнен, но du показывает файлов намного меньше, чем df. В чём причина и как диагностировать?
Расхождение между df и du часто связано с тем, что df показывает использование всего пространства на файловой системе, включая файлы, которые были удалены, но ещё открыты процессами, а du считает только видимые файлы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Расхождение между df и du часто связано с тем, что df показывает использование всего пространства на файловой системе, включая файлы, которые были удалены, но ещё открыты процессами, а du считает только видимые файлы.
В вашем случае:
dfпоказывает 100% занятости — значит, все блоки заняты.duпоказывает всего 95KB — значит, видимых файлов почти нет.
Причина может быть в том, что есть удалённые, но открытые файлы, которые продолжают занимать место.
Как найти причину:
- Используйте команду
lsof +L1 /opt— она покажет открытые файлы с количеством ссылок меньше 1 (удалённые, но открытые). - Если такие файлы найдены, нужно определить процесс, который их держит, и перезапустить или завершить его, чтобы освободить место.
- Также проверьте наличие скрытых файлов или точек монтирования внутри
/opt, которые могут влиять на подсчёт.
Таким образом, основная причина — удалённые, но открытые файлы, которые занимают место на диске, но не видны через du.