du E encontre -ls

du E encontre -ls

Eu tenho um servidor Solaris 10 que montou um sistema de arquivos remoto via NFS. Acredito que o sistema remoto seja um NetApp, mas não está claro.

Quando corro df -h <mountpoint>fico com o tamanho 12T, usei 10T com capacidade de 87%.

Quando mudo para o ponto de montagem e executo, ls -A |xargs du -srecebo cerca de 8 megabytes. Eu esperava que du descesse recursivamente e somasse todos os tamanhos de arquivo, mas parece que isso não acontece aqui.

Como uma cerca viva, eu corri

find <mountpoint> -ls | awk '{total=total+$7}END{print total}'

a resposta é 13006791645. Quando dividido por 1024 ^ 3 (1073741824), obtenho cerca de 12,1 terabytes.

Então parece que find -lse dfestamos mais ou menos de acordo. Por que você falharia tão gravemente?

PS: o comando ls -Atambém captura os diretórios ocultos de instantâneos, mas find não encontra nada (exceto "ciclo detectado").

Responder1

du -srelatórios em blocos de 512 bytes. Sua comparação com df -hnão pode ser feita, pois dunão relata dados legíveis por humanos.

Para comparar os dois valores, use du -sh <mountpoint>ou /usr/xpg4/bin/df -Ppara permitir dftambém o relatório em unidades de 512 bytes.

De acordo com man du:

Arquivos com vários links serão contados e gravados para apenas uma entrada. A entrada de diretório selecionada no relatório não é especificada. Por padrão, os tamanhos dos arquivos são gravados em unidades de 512 bytes, arredondados para a próxima unidade de 512 bytes.

Tente /usr/xpg4/bin/df -Pobter 512 bytes relatados por 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

E compare com du -s:

bash-3.2$ du -s /var
65976060        /var

Ou compare:

bash-3.2$ df -h /var              
Filesystem             size   used  avail capacity  Mounted on
rpool/ROOT/s10x_u11wos_24a/var
                       547G    32G   455G     7%    /var

com:

bash-3.2$ du -hs /var   
  31G   /var

informação relacionada