Torsten Foertsch wrote:
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
Hi, Florian hatte aber 'n fsck schon laufen lassen. Da sollte niemand mehr dran rumtun. Und das mit dem dd haut nur bei ls hin. df und du rechnen es beide nicht mit. Hab ich grade getestet. Nur ls -l zeigt für "x" was an. Vielleicht ist auch was an der Partitionstabelle oder so. Auf jeden Fall nix, was im "normalen" User-Linux ohne spezielle Finessen und Nutzungsmethoden vorkommen sollte. Dafür ist die Abweichung IMHO zu groß. Bleibt das eigentlich über einen reboot hinaus (btw. ich würde vorm reboot alles sichern, was mir lieb und teuer ist, für den Fall, daß es die logische Partitionierung ist und nachher nicht nur /var betroffen oder gar physikalisch, obwohl das nicht so klingt, solange du keine Fehler ausgibt. Gibts im übrigen was in den messages oder warnings, was auf was Unregelmäßiges hindeutet? joerg -- 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