Несоответствие между данными df и du

Доброго времени суток.

Столкнулся с непонятной ситуацией.

Смотрю, сколько места осталось на разделе (несущественная часть опущена):

root@xxx:/# df -h
Filesystem        Size  Used Avail Use% Mounted on
rootfs            7.7G  7.1G  184M  98% /
...

Ага - нужно глянуть, кто съел всё место.

root@xxx:/# du -hs
1.5G    .

Т.е. df мне говорит, что корневой раздел занимает 7.1G, а du при этом говорит, что вся файловая система от корня (вместе с примонтированными /boot и /var) занимает всего 1.5G

Как это можно объяснить?

создай миллион пустых файлов

1. создай миллион пустых файлов или папок, и сравни показания df и du...
Как ты думаешь, совпадут показания?
2. Создаешь файл в 2G. открываешь его чем-нибудь, в другом терминале этот файл удаляешь. Файл открыт, но удален. Сравниваешь показания...

eegorov написал(а): 1. создай

eegorov написал(а):
1. создай миллион пустых файлов или папок, и сравни показания df и du...
Как ты думаешь, совпадут показания?
2. Создаешь файл в 2G. открываешь его чем-нибудь, в другом терминале этот файл удаляешь. Файл открыт, но удален. Сравниваешь показания...

Да нету там "миллиона пустых файлов или папок". Тем более, нету одновременно открытых и удаленных файлов.

телепаты на ТНТ...

телепаты на ТНТ...

не btrfs ли?

не btrfs ли?

Beelzebubbie написал(а): не

Beelzebubbie написал(а):
не btrfs ли?

Нет. Обычный ext3.

du --max-depth=1 -lh /

du --max-depth=1 -lh /

wi написал(а): du

wi написал(а):
du --max-depth=1 -lh /

Мне проще набрать du -hslc /* - результат тот же, а символов меньше :)

Впрочем, и мой вариант, и ваш - выдали одинаковые результаты: те же самые 1.5G

Я понимаю, что не мешало бы почекать файловую систему, но перегружать сервак не хочется. Он хоть и не критичный, но люди им пользуются.

Может папки на которые ты

Может папки в которые вы монтируете не пустые. Например /boot, /var.
Попробуйте так от root:
mkdir /mnt/root
mount --bind / /mnt/root
А затем проверяете что папки /mnt/root/boot, /mnt/root/var (и другие в которые вы монтируете с приставкой /mnt/root) пустые.

Вот здесь предлагается

Вот здесь предлагается объяснение http://www.cyberciti.biz/tips/freebsd-why-command-df-and-du-reports-different-output.html только оно предполагает, что есть открытые и удалённые файлы. Это здесь кто-то уже упоминал.

Чем больше юзерфрендли, тем сложнее юзать.

а если посмотреть с помощью sys-fs/ncdu

маленькая уютненькая утилитка, покажет по каталогам, что где; размеры в смысле;

заходишь в каталог и уже в нём показывает размеры вложенных каталогов :)

без fsck всё остальное -

без fsck всё остальное - гадание на кофейной гуще. Варианты тебе уже озвучили. В ext3 я такое наблюдал и не раз - при нештатном выключении сервера и не проведенной полностью fsck(touch /forcefsck && reboot, ну или руками запускать) может очень редко вылезать подобная шняга. Причем штатный fsck, проводимый при старте - не спасает что в CentOS что в Gentoo

Нейтральность - высшее достижение сознания!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".