On Tue 11 Nov 2008, Florian Schaal wrote:
ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition.
df schaut im Superblock des Filesystems nach (man statfs). du durchsucht Verzeichnisse und zählt die von den Dateien belegten Blöcke (oder Bytes) zusammen. Die Zahlen sind also nicht wirklich vergleichbar. Ein Programm kann (ganz legitim) ein File öffnen und es sofort löschen, aber geöffnet lassen. Damit kommt es in keinem Verzeichnis mehr vor; du kann es also nicht mitzählen. Das Programm kann aber trotzdem in das File schreiben. Wo landen die Daten dann? Natürlich auf der Partition (und df zählt sie mit), aber eben in keinem Verzeichnis. Erst wenn das Programm das File schließt, wird der Platz freigegeben. /tmp und /var/tmp sind gute Kandidaten für solche Aktionen. Vmware hat früher (vielleicht auch noch heute) sowas z.B. gemacht. Die Dateien konnten richtig groß werden. Vergleichbar sind die Zahlen eigentlich nur, wenn Du genau weißt, daß kein anderes Programm die Partition benutzt. Du solltest also von einer Knoppix DVD oder so booten. Ein anderer interessanter Effekt in diesem Zusammenhang ist dieser: $ du -sch 4.0K . 4.0K total $ ls -lah total 8.0K drwxr-xr-x 2 r2 users 4.0K 2008-11-11 13:04 . drwxr-xr-x 3 r2 users 4.0K 2008-11-11 13:03 .. -rw-r--r-- 1 r2 users 477G 2008-11-11 13:18 x Da gibt es ein File mit 477G Größe, du zeigt aber bloß 4k aks belegt in diesem Verzeichnis an. Bzw. $ du -sch x 0 x 0 total Wie geht das? Es wurden nie Daten in das File geschrieben, sondern nur mit seek (man lseek) der End-Of-File Pointer an eine bestimmte Stelle geschoben. Das File besteht also aus einem großen Loch. Man erstellt solch ein File z.B. mit "dd if=/dev/null of=x seek=1000000000" Torsten -- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org