du AND encontrar -ls

du AND encontrar -ls

Tengo un servidor Solaris 10 que ha montado un sistema de archivos remoto a través de NFS. Creo que el sistema remoto es NetApp, pero no está claro.

Cuando corro df -h <mountpoint>obtengo el tamaño 12T, usé 10T con una capacidad del 87%.

Cuando cambio al punto de montaje y lo ejecuto, ls -A |xargs du -sobtengo unos 8 megabytes. He llegado a esperar que du descienda recursivamente y sume todos los tamaños de archivos, pero no parece hacerlo aquí.

Como un seto, corrí

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

la respuesta es 13006791645. Cuando lo divido por 1024^3 (1073741824), obtengo aproximadamente 12,1 terabytes.

Así parece que find -lsya dfestán más o menos de acuerdo. ¿Por qué fracasarías tan gravemente?

PD: el comando ls -Atambién toma los directorios de instantáneas ocultos, pero no encuentra nada (excepto "ciclo detectado").

Respuesta1

du -sinformes en bloques de 512 bytes. df -hNo se puede realizar su comparación con ya que duno proporciona datos legibles por humanos.

Para comparar ambos valores, utilice du -sh <mountpoint>o /usr/xpg4/bin/df -Ppara dejar que dftambién se informe en unidades de 512 bytes.

De acuerdo a man du:

Los archivos con múltiples enlaces se contarán y escribirán para una sola entrada. La entrada del directorio seleccionada en el informe no está especificada. De forma predeterminada, los tamaños de archivo se escriben en unidades de 512 bytes, redondeadas a la siguiente unidad de 512 bytes.

Intente /usr/xpg4/bin/df -Pobtener 512 bytes informados 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

Y comparar con du -s:

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

O comparar:

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

con:

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

información relacionada