Der Umgang mit der alten CentOS 5.6-Box, ohne lvm-Setup, mein Root-Dateisystem / ist voll, ich habe viele alte Protokolldateien und Anwendungsdateien gelöscht, die ich nicht benötige, die mehr als 2 bis 5 GB groß waren, jedoch mein System meldet weiterhin, dass die Festplatte voll ist.
[root@tornms1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 130G 124G 0 100% /
/dev/sdb1 264G 188M 250G 1% /data
/dev/sda1 99M 24M 71M 26% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@tornms1 ~]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sdb1 on /data type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Hast du eine Idee, was ich als nächstes versuchen soll? ein neustart der box ist derzeit leider nicht möglich.
/.Trash/
leer ist? Hast du getansudo rm -Rf ~/.Trash/*
?Antworten:
Hier könnten zwei Dinge passieren.
Erstens hat Ihr Dateisystem Speicherplatz reserviert, auf den nur geschrieben werden
root
kann, damit kritische Systemprozesse nicht umfallen, wenn normalen Benutzern der Speicherplatz ausgeht. Deshalb sehen Sie 124G von 130G gebraucht, aber null verfügbar. Möglicherweise haben die von Ihnen gelöschten Dateien die Auslastung auf diesen Punkt gesenkt, jedoch nicht unter den Schwellenwert für normale Benutzer.Wenn dies Ihre Situation ist und Sie verzweifelt sind, können Sie möglicherweise den reservierten Speicherplatz ändern
root
. Zum Reduzieren auf 1% (der Standardwert ist 5%) lautet Ihr BefehlZweitens gibt das Betriebssystem keinen Speicherplatz für gelöschte Dateien frei, die noch geöffnet sind. Wenn Sie eine der Apache-Protokolldateien gelöscht haben, müssen Sie Apache neu starten, um Speicherplatz freizugeben.
quelle
Wenn Sie eine Datei löschen, die von einem Prozess verwendet wird, können Sie die Datei nicht mehr anzeigen
ls
. Der Prozess schreibt noch in diese Datei, bis Sie den Prozess beenden.Führen Sie einfach aus, um diese gelöschten Dateien anzuzeigen
lsof|grep delete
quelle
2 andere Möglichkeiten, um die Festplatte zu bekommen, ist volles Problem:
1) Unter einem Einhängepunkt versteckt: Linux zeigt eine vollständige Festplatte mit Dateien, die unter einem Einhängepunkt "versteckt" sind. Wenn Sie Daten auf das Laufwerk geschrieben haben und ein anderes Dateisystem darüber mounten, merkt sich Linux die Festplattennutzung korrekt, obwohl Sie die Dateien unter dem Mount-Punkt nicht sehen können. Wenn Sie über nfs-Bereitstellungen verfügen, versuchen Sie, die Bereitstellung aufzuheben, und prüfen Sie, ob vor der Bereitstellung versehentlich etwas in diese Verzeichnisse geschrieben wurde.
2) beschädigte Dateien: Ich sehe dies gelegentlich unter Windows zur Linux-Dateiübertragung über SMB. Eine Datei kann den Dateideskriptor nicht schließen, und Sie erhalten eine 4-GB-Papierkorbdatei.
Dies kann mühsamer zu beheben sein, da Sie das Unterverzeichnis suchen müssen, in dem sich die Datei befindet, aber es ist einfach zu beheben, da die Datei selbst leicht entfernbar ist. Ich benutze den
du
Befehl und führe eine Auflistung der Root-Unterverzeichnisse durch, um herauszufinden, wo der Dateibereich verwendet wird.Die Anzahl der Top-Level-Verzeichnisse ist normalerweise begrenzt, daher setze ich das für Menschen lesbare Flag, um
-h
zu sehen, welches Unterverzeichnis das Space-Hog ist.Dann cd Sie in das Problemkind und wiederholen den Vorgang für alle Elemente darin. Um das Erkennen der großen Gegenstände zu vereinfachen, ändern wir das du geringfügig und koppeln es mit einer Sortierung.
Dadurch wird für alle Dateien und Verzeichnisse die kleinste bis größte Ausgabe nach Bytegröße erzeugt
Sobald Sie die übergroße Datei entdeckt haben, können Sie sie normalerweise einfach löschen.
quelle
Mit lsof können Sie herausfinden, welche Dateien geöffnet sind. Es kann eine Menge von Ausgaben erzeugen, daher habe ich mich im folgenden Beispiel auf Zeilen beschränkt, die mit log enden:
quelle
Wenn einige Dateien gelöscht, aber noch von einem Prozess verwendet werden, wird der Speicherplatz nicht freigegeben. Starten Sie in diesem Fall entweder einen Prozess neu, der die Datei verwendet, oder machen Sie die Datei ungültig. Es ist immer empfehlenswert, solche Dateien auf null zu setzen, anstatt sie zu löschen. So finden Sie gelöschte Dateien, die jedoch noch von einigen Prozessen verwendet werden
es wird Prozess-ID und Dateideskriptor geben. Löschen einer gelöschten Datei anhand des Dateideskriptors
quelle
Geben Sie den Befehl ein
Welche zeigt die Liste der Dateien, die Speicher mit gelöschten Anführungszeichen.
Notieren Sie die PID (Prozess-ID) der Datei
Beende den Prozess
Der Speicher wird durch den Vorgang freigegeben
Überprüfen Sie es per Befehl
quelle
Zusätzlich zu den Erläuterungen könnte das Problem darin bestehen, dass sich auf einem anderen angeschlossenen Festplattengerät auf demselben Server ein anderer Mount-Punkt des Verzeichnisses für gelöschte Dateien befindet. Überprüfen Sie die aktuellen Mounts und die fstab-Einträge.
quelle
Tatsächliches Problem in freier Wildbahn beobachtet:
Stellen Sie sicher, dass Sie die tatsächlichen Dateien löschen und keine Symlinks zu den Dateien erstellen. Dies kann insbesondere bei Protokolldateien der Fall sein.
quelle