Ответы:
Что касается более оптимизированной версии du
, я не знаю ни одной. Вещи, которые приходят на ум:
stat -c '%h'
) - 2.Из всех этих параметров квота и выделенный раздел, вероятно, являются наиболее простыми и эффективными.
Проблема в том, что du должен перечислять каждый объект в поддереве. Это интенсивная операция с метаданными, которая занимает некоторое время для большинства файловых систем Linux. Некоторые файловые системы, NTFS и NSS Novell, имеют возможность отслеживать такие размеры каталогов в метаданных, что значительно ускоряет эту операцию. Как правило, если ваша файловая система поддерживает какие-либо квоты каталогов, она должна отслеживать эти данные внутренне для применения, каждое изменение размера реплицируется по дереву каталогов в точку квоты (NTFS) или в каждый каталог (NSS). ), когда это происходит, поэтому получить размер дерева каталогов очень быстро.
К сожалению, нет способа заставить дю бежать быстрее, только обходные пути.
du -h --max-depth=1
Дает вам размеры в человеческом формате KB / MB / GB из вашего текущего рабочего каталога.
С помощью стандартных инструментов вы должны получать размер каждого файла в каталоге каждый раз, когда хотите узнать общий размер. Возможно, более эффективный способ сделать это - иметь «монитор размера каталога», который отслеживает текущий размер каталога. Нет такой вещи (о которой я знаю), но вы могли бы реализовать ее inotify
. Возможно, не с bash (и inotify-tools
), но вы могли бы, например, использовать python и pyinotify.
если вы хотите использовать только диск для корневой файловой системы, то
df -h /
Нет. Не могли бы вы периодически делать диппайп в текстовый файл, в задании cron, которое запускается в одночасье, чтобы у вас не были сразу доступны не совсем текущие данные?
Обратите внимание, что измерение дискового пространства, используемого папкой, содержащей большое количество файлов в Windows, также занимает некоторое время.
дф -х /
это покажет вам объем дискового пространства, используемого и доступного.
возможно
df -h
лишний текст, так как короткий, краткий ответ недостаточен для того, чтобы сервер ошибался, считая меня человеком.
Вы должны использовать dnotify для расчета использования диска, если файловая система не изменяется часто.