Почему & ldquo; df & rdquo; и & ldquo; du & rdquo; команды показывают другое использование диска?

Я не могу получить доступ к системе 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%    /

как бы очистить систему, чтобы освободить место на диске?

26
задан 13 December 2013 в 23:39

8 ответов

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

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

и

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

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

Суммируйте использование диска каждым ФАЙЛОМ , рекурсивно для каталогов.

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

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

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

0
ответ дан 13 December 2013 в 23:39

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

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

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

# lsof | grep '(deleted)'
0
ответ дан 13 December 2013 в 23:39

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

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

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

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

0
ответ дан 13 December 2013 в 23:39

Как я могу удалить ссылки? - Викас Хардиа 22 августа '14 в 5:46

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

# 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

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

0
ответ дан 13 December 2013 в 23:39

Ничего особенного, что сбивает с толку: Вот посмотрите: =

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

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

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

0
ответ дан 13 December 2013 в 23:39
df

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

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

du

Суммирование использования диска.

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

0
ответ дан 13 December 2013 в 23:39

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

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

0
ответ дан 13 December 2013 в 23:39

В моем случае lsof не помог. Я смог отследить это, потому что я смонтировал образы дисков, используя losetup в качестве устройств петли. Даже после размонтирования этих устройств и удаления соответствующих образов оставались процессы, которые поддерживали своего рода косвенную ссылку на образы дисков.

Короче говоря, sudo ps -ef | grep loop , затем sudo losetup -d / dev / loopX . Это не прямой ответ на вопрос, почему du и df не согласны, но он всплывал достаточно часто, чтобы я смог, наконец, выяснить причину, отличавшуюся от любого ответа, который я мог найти.

0
ответ дан 24 December 2019 в 16:29

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

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