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

19

Я не могу получить доступ к системе ubuntu на моем компьютере, сообщение об ошибке: « система работает в режиме низкой графики », и я попробовал некоторые команды, которые я искал в Интернете.

Я выяснил, что проблем нет, нет свободного места на диске. Я использовал команды df "и" du ", результаты следующие:

du -j --max-depth=1
23G  ./home
3.3G ./usr 
...... 
28G

и

df -Th 
filesystem   Type   size    used   available   use%    mounted on 
/dev/sda5    ext4   68G     68G    0           100%    /

как бы я очистил систему для большего объема дискового пространства?

    
задан user2068965 11.04.2013 в 17:32
источник

7 ответов

35

Вероятно, вы знаете, что вы можете удалить файл, который все еще используется каким-либо приложением, и для этого приложения он остается доступным. Это потому, что файловый дескриптор в / proc / файловой системе остается открытым.

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

Вы можете найти все несвязанные, но открытые файлы:

# lsof | grep '(deleted)'
    
ответ дан Dmitry Alexandrov 13.12.2013 в 16:45
12
  

Как я могу удалить ссылки? - Vikas Hardia 22 августа 14 в 5:46

Вы должны найти процесс, который содержит дескриптор файла. Используйте команду Дмитрия Александрова, там вы видите процесс и pid. В нашем случае и «старый» файл журнала лака был космическим убийцей.

# lsof | grep '(deleted)'
[...]
varnishlo 13978       varnishlog    3w      REG              252,1 318448027646    5926973 /var/log/varnish/varnish.log.1 (deleted)
apache2   16801         www-data    2w      REG              252,1        64550   13110120 /var/log/apache2/error.log.1 (deleted)
[...]
# service varnishlog stop
[or if there is no service script]
# kill -11 13978 (the second number of the lsof command is the pid)
[or may be] 
# kill -9 13978

Не забудьте снова запустить службу или процесс, если это демон или какая-либо другая служба на вашем компьютере. Если вы можете, просто перезагрузите компьютер;)

    
ответ дан Octeny 13.08.2015 в 11:04
7

Хорошо, давайте посмотрим man-страницы:

  

df - использование дискового пространства файловой системы отчета

и

  

du - оценить использование файлового пространства

Эти два инструмента предназначались для разных целей. Пока df указывает на использование файловой системы, du сообщает об использовании файлового пространства. du работает с файлами, а df работает на уровне файловой системы, сообщая, что ядро ​​говорит, что оно доступно. Продолжайте читать% man-страницы du , поддерживая это:

  

Обобщите использование диска для каждого FILE , рекурсивно для каталогов.

он говорит, что du работает с файлами.

  

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

здесь говорится, что df не заботится о файлах, кроме самой файловой системы.

    
ответ дан Braiam 13.12.2013 в 16:29
2

Просто сказано:

Вы выполнили du без прав root. Таким образом, он не может проверить доступное пространство в папках /proc , /mnt и т. Д.

.

df показал общее количество использованных & amp; соответственно.

Итак, когда вы проверяете корневую файловую систему Linux, откройте отчет du как final.

    
ответ дан Sekra Invos 13.12.2013 в 15:22
0
df

Суммирование свободного дискового пространства

Отображает объем свободного места на диске.

du

Обобщите использование диска.

Отображает объем используемого дискового пространства.     

ответ дан Mitch 11.04.2013 в 17:46
0

ничего сложного: вот посмотрите: =

1) du == Использование диска
  Сколько дискового пространства используется этими файлами?

2) df == Диск бесплатно    Сколько свободного места на диске у нас есть?

Также для системы работает в режиме с низкой графикой ' здесь

    
ответ дан Avani badheka 03.01.2017 в 06:38
0

Я сделал
sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

Это точно объясняло большое несоответствие 21GB, которое я видел!
Этот файл был / swap, если 21GB !!

    
ответ дан user727981 22.08.2017 в 00:13