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 -s
erhalte 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 -ls
und df
mehr oder weniger einer Meinung sind. Warum sollten Sie so kläglich scheitern?
PS: Der Befehl ls -A
greift auch auf die versteckten Snapshot-Verzeichnisse zu, aber „find“ findet nichts (außer „Zyklus erkannt“).
Antwort1
du -s
Berichte in 512-Byte-Blöcken. Ihr Vergleich mit df -h
kann nicht durchgeführt werden, da du
keine für Menschen lesbaren Daten gemeldet werden.
Um beide Werte zu vergleichen, verwenden Sie entweder du -sh <mountpoint>
oder , /usr/xpg4/bin/df -P
um df
auch 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