df und du bringen unterschiedlichen Speicherbedarf

Hinweis: In dem Thema df und du bringen unterschiedlichen Speicherbedarf gibt es 16 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo,
    ich hoffe hier die passende Rubrik im Forum gefunden zu haben:
    Die Tools df und du liefern sehr unterschiedliche Angaben zum Speicherplatzbedarf für die root-Partition sda2.
    df gibt 27 GB als verwendeten Speicherplatz an (von 31 GB auf der Partition sda2).
    du hingegen gibt nur 9,4 GB an Speicherbelegung an.


    Code
    >df -h
    Dateisystem                     Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/sda2                         31G     27G  1,7G   95% /
    udev                             435M    108K  435M    1% /dev
    tmpfs                            435M       0  435M    0% /dev/shm
    /dev/sdb1                         32G     12G   19G   40% /data1
    /dev/sdc2                         31G     11G   19G   35% /platte3
    terra2.ifax.de:/mnt/array1/k300  1,4T    1,1T  318G   77% /terra



    Es ergibt sich ein Unterschied der angegebenen Speicherplatzbelegung von ca. 27 GB - 9,4 GB ~ 17 GB.
    Woher kann ein solcher Unterschied bei der Speicherplatzbelegung herkommen?
    Gibt es Tools, mit denen man der Ursache auf die Spur kommen und ggf. beheben kann?
    Verwendetes Dateisystem ist ext3.
    Gruß
    althoffc

    Für den Inhalt des Beitrages 88714 haftet ausdrücklich der jeweilige Autor: althoffc

  • Eine Frage, wie verwendest du die zwei befehle, als 'root' oder Benutzer?
    Ganz heißer Tipp, hast du dir schon mal die man-pages durch gelesen?


    Beim Zweiten Befehl, tust du 'Data1', 'Terra' und 'Platte3' ausschließen, beim 1. Befehl nicht.
    Dann die Anzeige auch noch mit '-h' == mensne leserlich umzuschalten, erzeugt auch eine Differenz.

  • boser Das ist einfach nur peinlicher Quatsch - bis auf die Empfehlung manpages zu lesen.
    Es ist egal, ob er das als User oder als root aufruft.
    Auch die Angabe von -h hat keinerlei Einfluss auf die Ausgabe, außer dass -implizit- natürlich Rundungsfehler auftreten.
    Ob er --exclude nun setzt, oder nicht, ist ebenfalls völlig egal. Er kriegt halt ohne --exclude ein paar Zeilen mehr.
    Vielleicht solltest du mal die manpages lesen?


    Man kann das natürlich schon eleganter, kürzer und treffender formulieren:

    Code
    du -h -s /dev/sda2
    df -h --total /dev/sda2

    Aber das ist hier auch egal.


    Es geht wohl schlicht um ein btrfs mit ein paar Snapshots.


    althoffc Suche hier nach: btrfs snapper

    2 Mal editiert, zuletzt von Trekkie00 ()

    Für den Inhalt des Beitrages 88717 haftet ausdrücklich der jeweilige Autor: LinuPia

  • Es ist egal, ob er das als User oder als root aufruft.


    Code
    arbeits-pc@Arbeitstier:/home> du -h --total 1>/dev/null
    du: das Verzeichnis „./.Trash-0“ kann nicht gelesen werden: Keine Berechtigung
    du: das Verzeichnis „./lost+found“ kann nicht gelesen werden: Keine Berechtigung
    du: das Verzeichnis „./arbeits-pc/.wine/drive_c/users/Public/Application Data/Package Cache/{4fcf070a-daac-45e9-a8b0-6850941f7ed8}“ kann nicht gelesen werden: Keine Berechtigung
    arbeits-pc@Arbeitstier:/home> su
    Passwort: 
    Arbeitstier:/home # du -h --total 1>/dev/null
    Arbeitstier:/home #


    Soviel zu deiner Aussage! Es macht sehr wohl ein Unterschied, ob man es als 'root' ausführt oder nicht.
    Aber du weißt es ja besser.


    Vielleicht solltest du mal die manpages lesen?


    Der Ratschlag ist durch den Praxisbeweise hinfällig und auch ein bisschen daneben.


    du -h --total /dev/sda2


    Mein Ergebnis:

    Zitat

    arbeits-pc@Arbeitstier:/> du -h --total /dev/sda*
    0 /dev/sda
    0 /dev/sda1
    0 /dev/sda2
    0 insgesamt


    Sehr aussage kräftig.


    df -h -s /dev/sda2


    Mein Ergebnis:

    Zitat

    arbeits-pc@Arbeitstier:/> df -h -s
    df: Ungültige Option -- s
    „df --help“ liefert weitere Informationen.


    Gratulation!!

  • @mods Bitte oben korrigieren: Die Optionen sind genau umgekehrt. Bei df stehen die Optionen von du und umgekehrt. Mea culpa.
    Und ich habe "brtfs" statt korrekt "btrfs" geschrieben.


    @all Es stimmt, es ist auch mein Fehler, dass du auf /dev/sd* angewendet nichts ausspuckt. Hätte ich -statt wild draufloszutippen- nur kurz gedacht, wäre sogar mit das klar gewesen: du, die DiskUsage muss ja die ganzen Inode und Verzeichniseinträge lesen können, um festzustellen, was da Sache ist. Und /dev/sd* sind nun mal Geräte und wissen nichts von solchen Strukturen.
    Das gilt aber nicht für df. DiskFree muss davon nichts wissen, und gibt korrekt den verwendeten und verfügbaren Plattenplatz aus.
    Und damit hat Boser also für du recht. Für df nicht. Was den Aufruf als root betrifft.
    Der Rest bleibt Quatsch.


    boser Die fragwürdige Umleitung von STDOUT auf /dev/null zeigt lediglich, dass man als User Fehlermeldungen kriegt. Nicht den Unterschied.


    Trotzdem tippe ich nicht auf Verständnisschwierigkeiten von df vs. du, sondern immer noch schlicht auf Snapshots unter btrfs

    Für den Inhalt des Beitrages 88721 haftet ausdrücklich der jeweilige Autor: LinuPia

  • TE hat geschrieben:


    Verwendetes Dateisystem ist ext3.


    *Hust*
    Nicht:

    Trotzdem tippe ich nicht auf Verständnisschwierigkeiten von df vs. du, sondern immer noch schlicht auf Snapshots unter btrfs


    ext3 <> btrfs

  • Hallo,


    ich werde den Tipp verfolgen, du als root auszuführen und schauen, welcher belegter Speicherplatz dann ermittelt wird.


    Anmerkung:
    Ich finde den Ton, den die Antwortgeber untereinander anschlagen, schon etwas ... befremdlich. Als neues Mitglied hier im Forum finde ich einen solchen Umgangston nicht gerade einladend und motivierend.



    Gruß
    althoffc

    Für den Inhalt des Beitrages 88724 haftet ausdrücklich der jeweilige Autor: althoffc

  • So,


    hier das Ergebnis von du als root ausgeführt.
    Leider ergibt sich kein entscheidender Unterschied. Im Vergleich zu df ist auch mit diesen du-Ausgaben eine Differenz des belegten Speicherplatzes von ca. 17 GB zu erkennen. (Dateisystem ist ext3).


    Was könnte sonst noch Ursache für diesen Unterschied sein? Problem ist eben auch, dass gemäß df-Ausgabe 95% der Platte belegt sind und nicht viel "Luft" zum Arbeiten bleibt. (Es waren zuvor 100% Belegung erreicht, so dass ich erst einige Dateien löschen musste, um überhaupt wieder Dateien speichern zu können.)


    Gruß
    althoffc



    Für den Inhalt des Beitrages 88725 haftet ausdrücklich der jeweilige Autor: althoffc

  • Das hab ich gefunden:


    Zitat


    Probably df is accounting for all the space allocated for inodes and other administrative overhead, whereas du is just accounting for the space used by the files.


    Quelle: http://unix.stackexchange.com/…du-why-so-much-difference


    Und noch eine Quelle für dich.
    http://www.administrator.de/fr…sgaben-df-h-sh-97985.html


    Sie sagen aber auch das aus, was LinuPia gesagt hat.
    df= schaut sich die ganze Platte an.
    du= die einzelne Files.
    Um es mal ganz grob (ungenau) zu sagen, wobei bei df die sog. I-Nodes gelesen werden, diese Zahl entspricht ( ohne Anwenden von Optionen immer 1024byte, dh. wenn eine Datei 1 bit größer ist, so wird der Zähler um eins hoch gesetzt und das liest df. Es wird also mehr angezeigt, als im reallive benutzt wird.)


    Wenn ich dein letztes Posting richtig lese, so fragst du eigentlich, wo der Plattenplatz hin verschwunden ist?
    Hast du schon mal in den verschiedenen Temp-Verzeichnis nachgeschaut, bzw. auch beliebt ist das Verz. /var/log/ , wo die Log-Dateien abgelegt werden und auch durch ein Rotationssystem aufgehoben werden.
    Die meisten Log-Dateien mit *.bz* dran, sind alte komprimierte Log-Dateien, die man löschen kann.

  • Läuft das System schon sehr lange? Manchmal belegen auch noch laufende Prozesse Plattenspeicherplatz, der schon aus dem Dateisystem gelöscht wurde. Aufspüren kann man das z.B. mit:


    Code
    sudo lsof | grep 'deleted'


    oder (übersichtlicher zusammengefasst):

    Code
    sudo lsof -a +L1 /*

    Für den Inhalt des Beitrages 88729 haftet ausdrücklich der jeweilige Autor: wn48z