Почему df и du показывают разные результаты?

Когда я выполняю команду df -h /tmp, он говорит, что использование диска составляет 100% , но когда он пытается du -sh /tmp, он говорит , использование диска составляет 2% .

Я хочу знать, почему эти команды показывают различный вывод, как эти две команды работают и каково решение этой проблемы.

Контекст: /tmp установлен в собственной файловой системе. Я использую серверную версию Ubuntu 12.04 в своей учетной записи VPS. Из-за этой проблемы использование /tmp 100% согласно df, некоторые программы жалуются на свободное место в /tmp.

9
задан 1 February 2014 в 03:40

3 ответа

du сообщает о свободном пространстве, сканируя достижимые коды и вычисляя их размер.

Если файл создан, открыт, а затем удален, пока он еще открыт, программа, которая его открыла, продолжит иметь доступ к файлу, а запись и чтение может быть произведено в эту область памяти на диске. du не учитывает такие открытые файлы, в то время как df учитывает.

Простой перезапуск должен очистить /tmp и решить вашу проблему.

Альтернативой было бы сканирование открытых файлов и перезапуск или прекращение процесса, который не выпустил удаленные файлы.

10
ответ дан 1 February 2014 в 03:40

Убедитесь, что вы sudo при запуске du. Например, если вы запустите du -hs /*, вы не увидите реального использования диска, если не добавите sudo.

-1
ответ дан 1 February 2014 в 03:40

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

1
ответ дан 1 February 2014 в 03:40

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

Похожие вопросы: