Кто-нибудь знает о бесплатном инструменте или сценарии командной строки, который вычисляет размер каталога, включая все подкаталоги?
Он должен быть совместим с 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)