du UND find -ls

du UND find -ls

Ich habe einen Solaris 10-Server, der ein Remote-Dateisystem über NFS gemountet hat. Ich glaube, das Remote-System ist eine NetApp, aber das ist nicht klar.

Beim Laufen df -h <mountpoint>nehme ich Größe 12T, verwende 10T mit einer Kapazität von 87 %.

Wenn ich den Einhängepunkt ändere und ausführe, ls -A |xargs du -serhalte ich etwa 8 Megabyte. Ich erwarte, dass du rekursiv absteigt und alle Dateigrößen addiert, aber hier scheint es nicht der Fall zu sein.

Als Absicherung lief ich

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

Die Antwort ist 13006791645. Wenn ich es durch 1024^3 (1073741824) teile, erhalte ich ungefähr 12,1 Terabyte.

Es scheint also, dass find -lsund dfmehr oder weniger einer Meinung sind. Warum sollten Sie so kläglich scheitern?

PS: Der Befehl ls -Agreift auch auf die versteckten Snapshot-Verzeichnisse zu, aber „find“ findet nichts (außer „Zyklus erkannt“).

Antwort1

du -sBerichte in 512-Byte-Blöcken. Ihr Vergleich mit df -hkann nicht durchgeführt werden, da dukeine für Menschen lesbaren Daten gemeldet werden.

Um beide Werte zu vergleichen, verwenden Sie entweder du -sh <mountpoint>oder , /usr/xpg4/bin/df -Pum dfauch in 512-Byte-Einheiten berichten zu lassen.

Entsprechend man du:

Dateien mit mehreren Links werden nur für einen Eintrag gezählt und geschrieben. Der im Bericht ausgewählte Verzeichniseintrag ist nicht angegeben. Standardmäßig werden Dateigrößen in 512-Byte-Einheiten geschrieben und auf die nächste 512-Byte-Einheit aufgerundet.

Versuchen Sie /usr/xpg4/bin/df -P, 512 Bytes gemeldet zu bekommen von 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

Und vergleichen Sie mit du -s:

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

Oder vergleichen Sie:

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

mit:

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

verwandte Informationen