Lösung 1:
Ich bin gerade über diese Seite gestolpert, als ich versucht habe, ein Problem auf einem lokalen Server aufzuspüren.
In meinem Fall der df -h
und du -sh
um etwa 50 % der Festplattengröße nicht übereinstimmen.
Dies wurde durch Apache (httpd) verursacht, der große Protokolldateien im Speicher hält, die von der Festplatte gelöscht wurden.
Dies wurde durch Ausführen von lsof | grep "/var" | grep deleted
aufgespürt wobei /var
war die Partition, die ich aufräumen musste.
Die Ausgabe zeigte Zeilen wie diese:
httpd 32617 nobody 106w REG 9,4 1835222944 688166 /var/log/apache/awstats_log (deleted)
Die Situation wurde dann durch einen Neustart von Apache (service httpd restart
) und räumte 2 GB Speicherplatz frei, indem zugelassen wurde, dass die Sperren für gelöschte Dateien aufgehoben werden.
Lösung 2:
Suchen Sie nach Dateien, die sich unter Mount-Punkten befinden. Wenn Sie ein Verzeichnis (z. B. sambafs) in ein Dateisystem einhängen, das bereits eine Datei oder Verzeichnisse enthält, verlieren Sie häufig die Möglichkeit, diese Dateien zu sehen, aber sie verbrauchen immer noch Speicherplatz auf der zugrunde liegenden Festplatte. Ich hatte Dateikopien, während ich im Einzelbenutzermodus Dateien in Verzeichnisse ausgab, die ich außer im Einzelbenutzermodus nicht sehen konnte (aufgrund anderer Verzeichnissysteme, die darüber gemountet wurden).
Lösung 3:
Ich stimme der Antwort von OldTroll als wahrscheinlichster Grund für Ihr "fehlendes" Leerzeichen zu.
Unter Linux können Sie die gesamte Root-Partition (oder jede andere Partition für diese Angelegenheit) einfach an einer anderen Stelle in Ihrem Dateisystem neu einhängen, sagen Sie zum Beispiel /mnt, geben Sie einfach ein
ausmount -o bind / /mnt
dann kannst du ein
machendu -h /mnt
und sehen Sie, was Ihren Speicherplatz belegt.
Ps:Entschuldigung, dass ich eine neue Antwort und keinen Kommentar hinzugefügt habe, aber ich brauchte eine Formatierung, damit dieser Beitrag lesbar ist.
Lösung 4:
Siehe was df -i
sagt. Es könnte sein, dass Sie keine Inodes mehr haben, was passieren kann, wenn es eine große Anzahl kleiner Dateien in diesem Dateisystem gibt, die alle verfügbaren Inodes verbrauchen, ohne den gesamten verfügbaren Speicherplatz zu verbrauchen.
Lösung 5:
In meinem Fall hatte dies mit großen gelöschten Dateien zu tun. Es war ziemlich mühsam, es zu lösen, bevor ich diese Seite fand, die mich auf den richtigen Weg brachte.
Ich habe das Problem schließlich mit lsof | grep deleted
gelöst , die mir zeigte, welches Programm zwei sehr große Protokolldateien enthielt (insgesamt 5 GB meiner verfügbaren 8-GB-Root-Partition).