Моя система Nagios отправила мне предупреждение, чтобы сообщить, что на одном из дисков нашего сервера OS X очень мало места. Когда я бегу df /Volumes/Apps/
я получил
/dev/disk0s3 117209520 114932472 2277048 99% /Volumes/Apps
Когда я бегу du -c /Volumes/Apps
это сообщает
11489944 total
Почему может быть такая огромная разница? Что еще более важно, как мне найти проблему и что я могу с ней сделать? По сути, я просто администратор Windows, так что здесь я не в своей зоне комфорта. Я использую Mac, но я не администратор Mac в полном смысле этого слова.
Обновить:
Бег ls -laR /Volumes/Apps/
сообщает в общей сложности 10281584, что сбивает с толку даже ниже, чем у отчетов du, хотя и находится в том же районе.
Исправлено:
Обходной путь, а не решение, поэтому он не опубликован в качестве ответа. Я просто переформатировал раздел Apps и восстановил его содержимое. До этого я запускал Дисковую утилиту, чтобы попытаться обнаружить / исправить любые проблемы, но она не сообщала об обнаруженных проблемах.
Я полагаю, вы это видите, потому что du сообщает о размерах каталогов по пути, который вы запрашиваете. IE, если у вас есть файлы в / Volumes / Apps, он не будет добавлять их размер в счетчик.
В этом можно убедиться, выполнив следующие действия:
touch /Volumes/Apps/test.txt
cat /dev/random > /Volumes/Apps/test.txt (control-c this after a sec to stop it)
du -c
На этом этапе обратите внимание, что когда вы запустите du, он не покажет этот файл. Теперь сделайте следующее:
mkdir /Volumes/Apps/test
mv /Volumes/Apps/test.txt /Volumes/Apps/test/test.txt
du -c
Теперь вы должны увидеть пространство, используемое файлом test.txt. В вашей ситуации я предполагаю, что у вас есть коллекция .dmg, zip-файлов или других монолитных файлов, занимающих куски вашего пространства.
Это странно. Единственное, что сообщает df или, я бы сказал, учитывает, что du не делает, - это метаданные. Как объяснил этот article du не учитывает такие вещи, как inodes, карты дисков и суперблоки, поскольку du работает в пользовательском пространстве.
Может быть, это из-за того, что Mac отображает плохие блоки в вашей файловой системе и, таким образом, они «используются» в соответствии с df? Поскольку этого не происходит в пользовательском пространстве, это объясняет, почему du не сообщает об этом.
Также в качестве примечания, и я уверен, что вы уже знаете, что df и du по умолчанию используют счетчик блоков отчетов, а не размер. Поэтому, если df или du сообщают в сумме 117209520, а размер вашего блока равен 512, тогда:
117209520 * .512 / 1024 = МБ
Если вы хотите видеть его в удобочитаемых единицах, просто используйте df -h или du -sh