Wie lange dauert es nach dem Löschen einer großen Datei, bis die Änderung übernommen wird?

12

Ich habe eine 2,3-GB-Protokolldatei auf meinem Ubuntu-Server gelöscht und dfscheint die Änderung nicht zu übernehmen. Gibt es normalerweise eine Verzögerung, bevor dffestgestellt werden kann, dass eine große Datei gelöscht wurde?

Dan
quelle

Antworten:

20

Es hört sich so an, als ob die Datei nach einem bestimmten Vorgang noch geöffnet ist. Sie müssen diesen Dienst neu starten, damit der Speicherplatz freigegeben wird.

gestürzter Wagen
quelle
1
Besonders wahrscheinlich für Protokolldateien. Viele Programme öffnen ihre Protokolldatei beim Start und schließen sie erst nach dem Beenden.
Mattdm
1
Und Sie können herausfinden, ob es noch verwendet wird und von wem lsof
Joris
Tolle Frage und tolle Antwort. Ich habe mich das schon seit einiger Zeit gefragt. Möglicherweise können Sie es auch dazu bringen, das Dateihandle zu schließen, indem Sie ihm ein SIGHUP senden. Wenn in Prozess 12345 beispielsweise eine "gelöschte" Datei geöffnet ist sudo kill -HUP 12345, wird dieser Prozess möglicherweise geschlossen. (Es hängt natürlich davon ab, wie dieser Prozess ein SIGHUP-Signal behandelt. Viele daemon-orientierte Dateien werden jedoch geschlossen und öffnen Dateihandles erneut, wenn sie ein SIGHUP erhalten.)
Mark E. Haase
Ich dachte, wir können geöffnete Dateien nicht löschen!
Ashish Karpe
1
@AshishKarpe Nein, Sie können eine geöffnete Datei löschen, aber der geöffnete Prozess behält den Inhalt der Datei auf der Festplatte. Die Datei ist jetzt für andere Prozesse unsichtbar, da sie von keinem vorhandenen Dateinamen referenziert wird. Der geöffnete Prozess kann sie jedoch weiterhin lesen und schreiben. Sobald dieser Prozess die Datei schließt, wird der Inhalt gelöscht und der Speicherplatz beansprucht.
Jonathan Hartley
2

Wenn im Dateisystem nicht genügend Speicherplatz vorhanden ist, wird möglicherweise der reservierte Speicherplatz im Dateisystem aufgerufen. In den ext2 / 3/4-Dateisystemen ist reservierter Speicherplatz für root reserviert. Standardmäßig sind dies 5%. Wenn es also voll war und 2,3 GB weniger als 5% des Speicherplatzes auf dem Laufwerk ausmachen, scheint das Dateisystem immer noch voll zu sein.

In dieser Situation haben Sie zwei Möglichkeiten. Um weiterhin Speicherplatz freizugeben, bis Sie freien Speicherplatz haben, oder um den vom Dateisystem reservierten Speicherplatz zu ändern. Um die Menge des reservierten Speicherplatzes zu ändern, tune2fs -m 0 /dev/sda1ersetzen Sie die 0 durch den Prozentsatz des gewünschten reservierten Speicherplatzes und / dev / sda1 durch das entsprechende Gerät.

Weitere Informationen finden Sie in der akzeptierten Antwort auf diese Frage .

3dinfluence
quelle
0

Nicht lang. Die Chancen stehen gut, dass die Datei einfach noch verwendet wird. Es wird keine Speicherplatzfreigabe geben, bis Sie die entsprechenden Prozesse beenden.

poige
quelle
0

Überprüfen Sie auch Ihr .trash-Verzeichnis.

JakeRobinson
quelle
Wo ist dieses .trash-Verzeichnis?
Ashish Karpe
Am Ubuntu 14.04 sehe ich, dass ich eine habe ~/.local/share/Trash, die voller Müll ist, den ich in Nautilus gelöscht habe.
Jonathan Hartley