GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Dateien werden gelöscht, aber der Speicherplatz ist noch voll

Hier könnten zwei Dinge passieren.

Zuerst , Ihr Dateisystem hat etwas Platz reserviert, der nur root ist schreiben können, sodass kritische Systemprozesse nicht ausfallen, wenn normalen Benutzern der Speicherplatz ausgeht. Aus diesem Grund sehen Sie 124G von 130G verwendet, aber null verfügbar. Möglicherweise haben die von Ihnen gelöschten Dateien die Auslastung auf diesen Punkt gesenkt, aber nicht unter den Schwellenwert für normale Benutzer.

Wenn dies Ihre Situation ist und Sie verzweifelt sind, können Sie möglicherweise den für root reservierten Speicherplatz ändern . Um es auf 1 % zu reduzieren (der Standardwert ist 5 %), wäre Ihr Befehl

# tune2fs -m 1 /dev/sda3

Zweiter , gibt das Betriebssystem keinen Speicherplatz für gelöschte Dateien frei, die noch geöffnet sind. Wenn Sie (sagen wir) eine der Protokolldateien von Apache gelöscht haben, müssen Sie Apache neu starten, um den Speicherplatz freizugeben.


Wenn Sie eine Datei löschen, die von einem Prozess verwendet wird, können Sie die Datei mit ls nicht mehr anzeigen . Der Prozess schreibt immer noch in diese Datei, bis Sie den Prozess stoppen.

Um diese gelöschten Dateien anzuzeigen, führen Sie einfach lsof|grep delete aus


2 andere Möglichkeiten, um zu erfahren, dass Festplatte voll ist Problem:

1) unter einem Einhängepunkt versteckt: Linux zeigt eine volle 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, notiert Linux die Festplattennutzung korrekt, obwohl Sie die Dateien unter dem Mount-Punkt nicht sehen können. Wenn Sie nfs-Mounts haben, versuchen Sie, sie zu unmounten und nachzusehen, ob vor dem Mounten versehentlich etwas in diese Verzeichnisse geschrieben wurde.

2) beschädigte Dateien: Ich sehe dies gelegentlich bei der Dateiübertragung von Windows zu Linux über SMB. Eine Datei kann den Dateideskriptor nicht schließen, und Sie landen mit einer 4-GB-Datei im Papierkorb.

Dies kann mühsamer zu beheben sein, da Sie das Unterverzeichnis finden müssen, in dem sich die Datei befindet, aber es ist einfach zu beheben, da die Datei selbst leicht entfernbar ist. Ich verwende den du Befehl und erstellen Sie eine Auflistung der Root-Unterverzeichnisse, um herauszufinden, wo der Dateibereich verwendet wird.

cd /
du -sh ./* 

Die Anzahl der Top-Level-Verzeichnisse ist normalerweise begrenzt, also stelle ich vom Menschen lesbar ein Flag -h um zu sehen, welches Unterverzeichnis das Leerzeichen ist.

Dann cd in das Problemkind und wiederhole den Vorgang für alle darin enthaltenen Elemente. Um die großen Gegenstände leichter erkennen zu können, ändern wir das du leicht und koppeln es mit einer Sorte.

cd /<suspiciously large dir>
du -s ./* | sort -n

die eine kleinste bis größte Ausgabe nach Bytegröße für alle Dateien und Verzeichnisse erzeugt

4          ./bin 
462220     ./Documents
578899     ./Downloads
5788998769 ./Grocery List

Sobald Sie die übergroße Datei entdeckt haben, können Sie sie normalerweise einfach löschen.


Linux
  1. Ich habe einen Benutzer zu einer Gruppe hinzugefügt, aber Gruppenberechtigungen für Dateien haben immer noch keine Wirkung?

  2. Facl Ignorieren der „x“-Berechtigung, aber nur für Dateien?

  3. Vergleichen Sie Verzeichnisse, aber nicht den Inhalt von Dateien?

  4. Messen Sie den Speicherplatz bestimmter Dateitypen insgesamt

  5. Amazon EC2 – Festplatte voll

7 Linux-Befehlszeilentipps zum Einsparen von Speicherplatz für Mediendateien

5 Möglichkeiten, Speicherplatz unter Debian 10 freizugeben

Verstehen Ihres Speicherplatzes durch den Befehl „df“ in Linux

Kann eine Loop-Backed-Datei nicht unmounten, aber es gibt keine geöffneten Dateien?

Suchen von Dateien, die den meisten Speicherplatz beanspruchen

Wie kann ich den Speicher gelöschter, aber noch verwendeter Dateien unter Linux zurückfordern?