Разница между df -k и du -sh

df -k
/dev/sda6             25396228  21249088   2836240  89% /export
21G used

против

du -sh /export 
3.4G    /export

3.4G правильно, потому что мы удалили все несущественные файлы, но свободное место, о котором сообщает df, не соответствует фактическому свободному пространству, которое должно быть там.

Почему это так?

3 ответа

Решение

Удаленные файлы, вероятно, все еще открыты процессом. Проверьте:

lsof -a +L1 /export

Я думаю это потому что:

  • df проверяет доступные блоки (суперблоки)
  • du суммирует пространство каждого файла.

Одно или несколько приложений имеют открытые файлы /export, но сами имена файлов больше не существуют (т.е. были удалены).

Они измеряют две похожие, но немного разные вещи. df измеряет емкость файловой системы, а du измеряет дерево каталогов. Например, если у вас было следующее:

 /dev/sda6 mounted on /exports
 /dev/sda7 mounted on /exports/extra

df of / export измеряет только /dev/sda6, тогда как du of /exports будет измерять / dev / sda6 и /dev/sda7. Есть некоторые флаги относительно пересечения границ файловой системы, которые могли бы изменить счет. Обработка символических ссылок также может повлиять на результаты.

Другие вопросы по тегам