Назад | Перейти на главную страницу

Бесплатный инструмент / скрипт для расчета размера каталога

Кто-нибудь знает о бесплатном инструменте или сценарии командной строки, который вычисляет размер каталога, включая все подкаталоги?

Он должен быть совместим с Windows 7, работать с жесткими ссылками и переходами и изящно обрабатывать отказ в доступе к какой-либо подпапке (т. Е. Продолжаться в таком случае).

Я ничего не нашел и подумываю написать свой собственный инструмент.

Обновить:

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

Du от Sysinternals может быть тем, что вы ищете. Это бесплатно от Microsoft, и это, по сути, рудиментарная версия * ix du. Он имеет дело с соединениями и отказами в разрешениях, сообщая, что файл не существует.

http://technet.microsoft.com/en-us/sysinternals/bb896651

Du v1.34 - report directory disk usage
Copyright (C) 2005-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: du [[-v] [-l <levels>] | [-n]] [-q] <directory>
   -l     Specify subdirectory depth of information (default is all levels)
   -n     Do not recurse.
   -q     Quiet (no banner).
   -u     Count only unique file occurences.
   -v     Show size (in KB) of intermediate directories.

c:\sysinternals>du c:\sysinternals

Du v1.34 - report directory disk usage
Copyright (C) 2005-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

Files:        101
Directories:  0
Size:         32,798,999 bytes
Size on disk: 32,798,999 bytes

Использование robocopy с / l сделает это, игнорируя вещи, к которым у вас нет доступа, а / B даже попытается в режиме backuo, который может дать вам доступ, которого в противном случае не было бы.

/ L :: Только список - не копировать, не ставить отметку времени и не удалять файлы.

/ XJ :: исключить точки соединения. (обычно включается по умолчанию).

Есть ли что-то конкретное, что вы имели в виду, говоря «изящно обрабатывать отказано в доступе к какой-то подпапке»?

/ Edit - теперь, когда вы задали совершенно новый вопрос, я засыпаю вас другими ответами:

Зачем он вам нужен под Windows 7? Запустите его на сервере (ах).

Как вы ожидаете увидеть это в использовании? Crystal Reports может использовать файловую систему в качестве источника отчетов, и вы можете группировать их по размеру в одном отчете и по количеству файлов в другом. Нужна ли история? Вы можете использовать что-то вроде RRDTool для запуска diruse в каждой папке в родительском каталоге или каталогах, где вы храните свои домашние имена. И тогда у вас есть красивые красивые веб-страницы с красивыми красивыми графиками.

Для интерактивного использования мне нравится WinDirStat, но некоторым нравится TreeSize Pro.

Как это связано с вашей потребностью в распространении? Вы пытаетесь создать и продать продукт управления для других ИТ-администраторов? Если это только для вас и ваших сотрудников, это не «перераспределение».

Стандартная установка Cygwin (слой эмуляции POSIX для Windows) включает du утилита от Коллекция основных утилит GNU, и он полностью поддерживает жесткую связь и точки соединения. Я верю Cygwin (а ​​значит du) обрабатывает точки соединения как софт-ссылки.

Тебе действительно стоит посмотреть на http://foldersize.codeplex.com/releases?ReleaseName=FolderSize.Win32.1.0.7.0 это круто! Простой графический способ увидеть, кто какое пространство жует.

Вы заглянули в инструмент Microsoft diruse? Это инструмент командной строки, который делает именно то, что вы ищете. Это часть серверных инструментов для Windows 2000 и 2003, но все еще доступна для загрузки: Статья Microsoft Diruse TechNet.

Единственное, в чем я не уверен, так это в том, как он обрабатывает жесткие ссылки и точки соединения. Возможно, стоит поэкспериментировать.

Пример из статьи TechNet:

diruse /* /m \\shared\data 

 Size (mb)  Files  Directory
       248.60   3739  SUB-TOTAL: \\SHARED\DATA\Admin
        31.27     36  SUB-TOTAL: \\SHARED\DATA\Common
      1448.14  23654  SUB-TOTAL: \\SHARED\DATA\ConsultServ
       107.64    750  SUB-TOTAL: \\SHARED\DATA\CorpServ
      1053.28   6145  SUB-TOTAL: \\SHARED\DATA\Design
       147.11    258  SUB-TOTAL: \\SHARED\DATA\Engrg
        70.56    745  SUB-TOTAL: \\SHARED\DATA\Finance
        18.78   1188  SUB-TOTAL: \\SHARED\DATA\Hardware
        12.18     50  SUB-TOTAL: \\SHARED\DATA\HR
         2.22     23  SUB-TOTAL: \\SHARED\DATA\InfoTech
         5.44     46  SUB-TOTAL: \\SHARED\DATA\Legal
        18.53     56  SUB-TOTAL: \\SHARED\DATA\ProdDev
       470.43   2016  SUB-TOTAL: \\SHARED\DATA\ProdMktg
       107.92   1445  SUB-TOTAL: \\SHARED\DATA\Research
        31.10     43  SUB-TOTAL: \\SHARED\DATA\Sales
         9.98     14  SUB-TOTAL: \\SHARED\DATA\TechSupp
       114.82   1269  SUB-TOTAL: \\SHARED\DATA\Training
      3898.00  41477  TOTAL

Это может быть немного бессмысленно для сбоя сервера, но размер дерева свободный (http://www.jam-software.com/treesize_free/) будет делать это довольно хорошо, особенно если вы просто пытаетесь использовать его один раз. В версии Professional есть много полезных функций, которые я использую для текущего обслуживания.

Я предлагаю WinDirStat.

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

Вы можете видеть, что WinDirStat показывает 14,9 ГБ для каталога winsxs. Эти 14,9 ГБ равны сумме того, что du (см. предыдущий ответ) вернуться как size (если вы возьмете 15,620,679,650 и разделите его на (1024 * 1024 * 1024), вы получите округленное значение 14,9)