Ferramenta / script grátis para cálculo do tamanho de diretório [fechado]

4

Alguém sabe de uma ferramenta ou script de linha de comando gratuito que calcula o tamanho de um diretório incluindo todos os subdiretórios?

Ele precisa ser compatível com o Windows 7, trabalhar com hard links e junções e lidar com o acesso negado a alguma subpasta (ou seja, continua nesse caso).

Eu não consegui encontrar nada e estou pensando em escrever minha própria ferramenta.

Atualização:

Estou procurando algo para analisar (muitos) perfis de usuários móveis armazenados em um servidor de arquivos. A ferramenta perfeita facilitaria encontrar os maiores diretórios de perfil ou aqueles com mais arquivos.

    
por Helge Klein 29.03.2011 / 17:52

7 respostas

4

O Du by Sysinternals pode ser o que você está procurando. É livre da Microsoft, e é basicamente uma versão rudimentar do * ix du. Ele lida com junções e permissões negadas, informando que o arquivo não existe.

link

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
    
por 29.03.2011 / 23:26
3

Usar o robocopy com / l fará isso, ignorando as coisas às quais você não tem acesso, e / B tentará até no modo backuo, o que pode te dar acesso que você não teria.

/L :: List only - don't copy, timestamp or delete any files.

/XJ :: eXclude Junction points. (normally included by default).

Existe algo específico que você entende por "lidar com o acesso negado a alguma subpasta"?

/ Edit - agora que você fez essencialmente uma pergunta totalmente nova, eu vou inundar você com outras respostas:

Por que você precisa rodar no Windows 7? Execute-o no (s) servidor (es).

Como você espera ver isso usado? O Crystal Reports pode usar um sistema de arquivos como fonte de relatórios e você pode agrupar por tamanho em um relatório e por número de arquivos em outro. Precisa ter história? Você poderia usar algo como o RRDTool para executar o diruse em todas as pastas do diretório pai ou diretórios onde você guarda seus homedirs. E então você tem ótimas páginas da Web com belos gráficos bonitos.

Para uso interativo, adoro o WinDirStat, mas algumas pessoas gostam do TreeSize Pro.

Como isso se liga à sua necessidade de redistribuir isso? Você está tentando criar e vender um produto de gerenciamento para outros administradores de TI? Se é apenas para você e sua equipe, isso não é "redistribuir".

    
por 29.03.2011 / 18:04
2

Uma instalação padrão do Cygwin (uma camada de emulação POSIX para Windows) inclui o utilitário du do GNU core utilities collection , e é totalmente hard-link e ponto de junção. Eu acredito que o Cygwin (e, portanto, du ) trata os pontos de junção como links suaves.

    
por 29.03.2011 / 19:42
2

Você realmente deve olhar para o link ! Maneira gráfica fácil de ver quem está mastigando o espaço.

    
por 29.03.2011 / 23:58
1

Você consultou a ferramenta da Microsoft diruse ? É uma ferramenta de linha de comando que faz exatamente o que você está procurando. Faz parte das ferramentas do servidor para o Windows 2000 & 2003, mas ainda está disponível para download: artigo do Microsoft Diruse TechNet .

A única coisa que não tenho certeza é como ele lida com hard-links e pontos de junção. Pode valer a pena experimentar.

Exemplo do artigo da 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
    
por 29.03.2011 / 22:37
0

Pode ser um pouco baixo para o Server Fault, mas o Tree Size Free ( link ) fará isso muito bem , especialmente se você está apenas tentando usar uma vez. A versão Professional tem muitos recursos interessantes que eu uso para manutenção contínua.

    
por 06.08.2011 / 15:22
0

Sugiro WinDirStat .

Hoje eu tive que verificar quanto espaço certos diretórios consomem e descobri que um deles faz uso pesado de hardlinks (o que pode fazer com que certos arquivos sejam considerados na soma mais de uma vez).

Você pode ver que o WinDirStat mostra 14,9 GB para o diretório winsxs. Esses 14,9GB equivalem à quantia do que du (veja a resposta anterior) retornar como size (se você pegar 15.620.679.650 e dividir por (1024 * 1024 * 1024) você recebe um arredondado 14,9)

    
por 08.02.2016 / 09:05