У меня есть сервер Solaris 10, который смонтировал удаленную файловую систему через NFS. Я думаю, что удаленная система — это NetApp, но это не ясно.
При запуске df -h <mountpoint>
я беру размер 12T, б/у 10T с емкостью 87%.
Когда я меняю точку монтирования и запускаю, ls -A |xargs du -s
я получаю около 8 мегабайт. Я ожидал, что du рекурсивно спустится и сложит все размеры файлов, но, похоже, здесь этого не происходит.
В качестве защиты я побежал
find <mountpoint> -ls | awk '{total=total+$7}END{print total}'
ответ — 13006791645. При делении на 1024^3 (1073741824) получается около 12,1 терабайт.
Так что, похоже, find -ls
и df
более или менее согласны. Почему бы du так жестоко не справиться?
PS: команда ls -A
также захватывает скрытые каталоги снимков, но find ничего не находит (кроме «обнаружен цикл»).
решение1
du -s
отчеты в 512-байтовых блоках. Ваше сравнение с df -h
не может быть сделано, так как du
не сообщает человекочитаемые данные.
Чтобы сравнить оба значения, используйте либо , du -sh <mountpoint>
либо , /usr/xpg4/bin/df -P
чтобы также вывести df
отчет в единицах по 512 байт.
В соответствии с man du
:
Файлы с несколькими ссылками будут подсчитаны и записаны только для одной записи. Запись каталога, выбранная в отчете, не указана. По умолчанию размеры файлов записываются в единицах по 512 байт, округленных до следующей единицы по 512 байт.
Попробуйте /usr/xpg4/bin/df -P
получить 512-байтовый отчет df
:
bash-3.2$ /usr/xpg4/bin/df -P /var
Filesystem 512-blocks Used Available Capacity Mounted on
rpool/ROOT/s10/var
1147797504 66061270 954397119 7% /var
И сравните с du -s
:
bash-3.2$ du -s /var
65976060 /var
Или сравните:
bash-3.2$ df -h /var
Filesystem size used avail capacity Mounted on
rpool/ROOT/s10x_u11wos_24a/var
547G 32G 455G 7% /var
с:
bash-3.2$ du -hs /var
31G /var