На моем сервере CentOS обе команды показывают разное использование для disk /, df показывает этот вывод:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2 16G 14G 952M 94% /
/dev/xvda6 996M 258M 687M 28% /tmp
/dev/xvda3 16G 6.5G 8.3G 45% /var
/dev/xvda1 251M 25M 213M 11% /boot
tmpfs 4.0G 0 4.0G 0% /dev/shm
и du -sh шоу
6.9M /bin/
15M /boot/
123M /etc
212K /home/
233M /lib
27M /lib64/
16K /lost+found/
8.0K /media/
8.0K /mnt/
399M /opt/
959M /root/
35M /sbin/
8.0K /srv/
0 /sys/
2.5G /usr/
4.2G total
Также пробовал использовать инструмент NCDU, который сообщает об использовании только 5,6 ГБ.
Как найти скрытое место на диске?
Посмотрите, есть ли у вас еще используемые удаленные файлы
lsof | grep deleted
Подробное объяснение можно найти в любом количестве Сообщения в блоге онлайн с быстрым поиском, но основная суть такова:
Если я создам разреженный файл размером 1 ГБ, du
покажет 1 ГБ, но df
покажет нулевое использование. Если у меня есть файл размером 1 ГБ, открытый в какой-либо программе, и я удалю его, df
будет по-прежнему показывать 1 ГБ использования, пока все ссылки на inode не будут закрыты, но du
никогда не найдет файл для его отображения.
df - это использование файловой системы, которое включает файлы и другие структуры, поддерживающие файлы, такие как журнал и т. д. du показывает только сумму размера файла, которая в большинстве случаев будет меньше. разница будет зависеть от того, как долго используется файловая система, сама файловая система и т. д.