Detaillierte Erläuterung des Problems, dass der Speicherplatz nach dem Löschen der Linux-Datei nicht freigegeben wird

Detaillierte Erläuterung des Problems, dass der Speicherplatz nach dem Löschen der Linux-Datei nicht freigegeben wird

Vorwort

Wenn der Systemspeicherplatz zu groß ist und gelöscht werden muss oder eine bestimmte Datei gelöscht werden muss, wird der Speicherplatz manchmal nicht freigegeben, nachdem der Löschbefehl ausgeführt wurde. Viele Leute sind verwirrt, wenn sie zum ersten Mal auf diese Situation stoßen, und fragen sich, ob es wie beim Papierkorb des Windows-Systems ist, wo das Löschen nur ein logisches Löschen in den Papierkorb ist? Tatsächlich ist das nicht der Fall. Wenn Sie mehr über die Papierkorbfunktion von Linux erfahren möchten, können Sie mit mir kommunizieren oder Informationen nachschlagen, um mehr darüber zu erfahren. Es ist auch eine praktischere Methode. Hier üben wir hauptsächlich das Problem, dass nach dem Löschen einer Datei kein Speicherplatz freigegeben wird.

1. Experimentelle Vorbereitung

Es gibt viele Möglichkeiten, dieses Szenario zu simulieren, hauptsächlich um das Szenario zu realisieren, in dem die Datei belegt ist. Am einfachsten ist es, die Datei zu kopieren. Eine andere gängige Methode besteht darin, dass Schüler mit guten Programmier- oder Shell-Kenntnissen ein Programm oder Skript schreiben, um kontinuierlich Inhalte in eine Datei zu schreiben. Dieses Mal haben wir es hauptsächlich durch das Kopieren von Dateien schnell reproduziert.

1.1 Erstellen Sie eine etwas größere Datei

/* Hauptsächlich für diesen Dateivorgang */
[root@c7_2 lokal]# ll -h 
insgesamt 3,0 G
-rw-r--r--. 1 root root 2,5 G 4. Mai 17:43 all_backup.tar.gz

/* Derzeit beträgt die Stammverzeichnisnutzung 6,5 G */
[root@c7_2 ~]# df -lh 
Verwendete Dateisystemgröße Verfügbare Nutzung% Eingebunden auf
devtmpfs 1,9 G 0 1,9 G 0 % /Entwickler
tmpfs 1,9 G 0 1,9 G 0 % /Entwickler/shm
tmpfs 1,9 G 12 M 1,9 G 1 %/Lauf
tmpfs 1,9 G 0 1,9 G 0 % /sys/fs/cgroup
/dev/mapper/centos-root 46 G 6,5 G 39 G 15 % /
/dev/sda1 1014M 150M 865M 15 % /boot
tmpfs 378M 0 378M 0 % /run/Benutzer/0

1.2 Verwenden Sie den Befehl scp, um die Datei zu belegen

/* Remote-Kopieren auf andere Hosts starten*/
[root@c7_2 lokal]# scp all_backup.tar.gz [email protected]:/home/test/ 

Die Authentizität des Hosts „192.168.28.226 (192.168.28.226)“ kann nicht festgestellt werden.
Der ECDSA-Schlüsselfingerabdruck lautet SHA256:QfJb1DogFmdZ0hkeVRvn2VHke+tkZ2+sNljhBBudooc.
Der ECDSA-Schlüsselfingerabdruck lautet MD5:2a:8a:63:80:35:17:f7:e9:2a:ea:13:98:eb:26:30:ba.
Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)? ja
Warnung: „192.168.28.226“ (ECDSA) wurde dauerhaft zur Liste der bekannten Hosts hinzugefügt.
Passwort von [email protected]: 
all_backup.tar.gz 0 % 2432 KB 2,4 MB/s 17:53 ETA^Z
[1]+ Gestoppt scp all_backup.tar.gz [email protected]:/home/test
 /* Im Hintergrund ausführen*/
[root@c7_2 lokal]# bg %1    
[1]+ scp all_backup.tar.gz [email protected]:/home/test &

1.3 Löschen von Dateien

/* Datei löschen */
[root@c7_2 lokal]# rm -f all_backup.tar.gz 
/* Speicherplatz prüfen, keine Änderung*/
[root@c7_2 lokal]# df -lh 
Verwendete Dateisystemgröße Verfügbare Nutzung% Eingebunden auf
devtmpfs 1,9 G 0 1,9 G 0 % /Entwickler
tmpfs 1,9 G 0 1,9 G 0 % /Entwickler/shm
tmpfs 1,9 G 12 M 1,9 G 1 %/Lauf
tmpfs 1,9 G 0 1,9 G 0 % /sys/fs/cgroup
/dev/mapper/centos-root 46 G 6,5 G 39 G 15 % /
/dev/sda1 1014M 150M 865M 15 % /boot
tmpfs 378M 0 378M 0 % /run/Benutzer/0
/* Die Datei existiert nicht mehr */
[root@c7_2 lokal]# ll -h 
insgesamt 3,0 G
drwxr-xr-x. 2 root root 6 11. April 2018 bin
drwxr-xr-x. 2 root root 6 11. April 2018 usw.
drwxr-xr-x. 2 root root 6 Apr 11 2018 Spiele
drwxr-xr-x. 2 root root 6 11. April 2018 einschließen
drwxr-xr-x. 2 root root 6 11. April 2018 lib
drwxr-xr-x. 2 root root 6 Apr 15 05:56 lib64
drwxr-xr-x. 2 root root 6 11. April 2018 libexec
drwxr-xr-x. 2 root root 6 11. April 2018 sbin
drwxr-xr-x. 5 root root 49 Nov 17 16:46 teilen
drwxr-xr-x. 2 root root 6 11. April 2018 src

2. Behandlungsmethoden

Mit dem Befehl lsof (list opened files) können Sie die geöffneten Dateien und den Prozess, der sie verwendet, anzeigen.

Der Befehl lsof ist im minimal installierten System nicht verfügbar. Sie können ihn zunächst über yum installieren.

 yum install -y lsof

2.1 lsof-Dateien anzeigen

Alle geöffneten Dateien anzeigen und gelöschte Dateien herausfiltern

[root@c7_2 local]# lsof |grep gelöscht
firewalld 818 root 6u REG 253,0 4096 36061750 /tmp/ffi0SEit6 (gelöscht)
gmain 818 998 root 6u REG 253,0 4096 36061750 /tmp/ffi0SEit6 (gelöscht)
abgestimmt 1180 root 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (gelöscht)
gmain 1180 1602 root 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (gelöscht)
abgestimmt 1180 1603 root 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (gelöscht)
abgestimmt 1180 1605 root 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (gelöscht)
abgestimmt 1180 1606 root 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (gelöscht)
scp 1798 root 3r REG 253,0 2665433605 104181296 /usr/local/all_backup.tar.gz (gelöscht)

Habe die Datei gefunden, die wir gerade gelöscht und von diesem Prozess geöffnet haben

2.2 Den Prozess ansehen

Durch lsof wird festgestellt, dass die Datei all_backup.tar.gz vom Prozess 1798 belegt ist. Sie können überprüfen, um welchen spezifischen Prozess es sich handelt.

[root@c7_2 lokal]# ps -ef|grep 1798
root 1798 1729 0 17:47 pts/0 00:00:00 scp all_backup.tar.gz [email protected]:/home/test
root 1799 1798 2 17:47 pts/0 00:00:03 /usr/bin/ssh -x -oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes -l test -- 192.168.28..226 scp -t /home/test
root 1868 1806 0 17:49 pts/1 00:00:00 grep --color=auto 1798

Es handelt sich um den Kopierbefehl, den wir zuvor ausgeführt haben.

2.3 Speicherplatz freigeben

Für diese Art von Abfragestatus müssen Sie das entsprechende Programm beenden

/* Den entsprechenden Prozess beenden */
[root@c7_2 lokal]# kill -9 1799 1798
/* Speicherplatz freigegeben*/
[root@c7_2 lokal]# df -lh 
Verwendete Dateisystemgröße Verfügbare Nutzung% Eingebunden auf
devtmpfs 1,9 G 0 1,9 G 0 % /Entwickler
tmpfs 1,9 G 0 1,9 G 0 % /Entwickler/shm
tmpfs 1,9 G 12 M 1,9 G 1 %/Lauf
tmpfs 1,9 G 0 1,9 G 0 % /sys/fs/cgroup
/dev/mapper/centos-root 46 G 4,0 G 42 G 9 % /
/dev/sda1 1014M 150M 865M 15 % /boot
tmpfs 378M 0 378M 0 % /run/Benutzer/0

Hinweis: Wenn Sie das Protokoll löschen möchten, während es kontinuierlich geschrieben wird, können Sie den Befehl echo " ">filename verwenden, um die Datei online zu löschen, ohne den Vorgang gewaltsam zu beenden. Wenn diese Methode nicht funktioniert, versuchen Sie, den Vorgang zu beenden.

3. Fazit

Dieser Artikel ist hauptsächlich auf die folgenden Szenarien anwendbar:

  • Das Löschen von Dateispeicherplätzen ist nicht freigegeben
  • Die Festplatte ist voll, aber die Datei kann nicht gefunden werden

Ich möchte Sie noch einmal daran erinnern, dass Sie den Vorgang nicht gewaltsam beenden müssen, wenn Sie den Befehl echo " ">filename verwenden können, um die Datei online zu löschen. Wenn diese Methode nicht funktioniert, versuchen Sie, den Vorgang zu beenden.

Dies ist das Ende dieses Artikels über das Problem, dass nach dem Löschen von Linux-Dateien kein Speicherplatz freigegeben wird. Weitere verwandte Inhalte zum Thema „Speicherplatz wird nach dem Löschen von Linux-Dateien nicht freigegeben“ finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Beispielanalyse von Linux-Dateiverwaltungsbefehlen [Berechtigungen, Erstellen, Löschen, Kopieren, Verschieben, Suchen usw.]
  • So gehen Sie mit dem Problem um, dass die Datei gelöscht wird, der Speicherplatz in Linux jedoch nicht freigegeben wird
  • Linux-Unlink-Funktion und wie man Dateien löscht
  • Linux implementiert geplante Sicherungen der MySQL-Datenbank und löscht Sicherungsdateien, die älter als 30 Tage sind
  • Linux sichert regelmäßig die MySQL-Datenbank und löscht vorherige Sicherungsdateien (empfohlen)
  • So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern
  • 5 Möglichkeiten zum Löschen oder Entfernen großer Dateiinhalte in Linux
  • Vergleich der Effizienz verschiedener Methoden zum Löschen von Dateien in Linux

<<:  Fallstudie zur Übermittlung von HTML-Formularen

>>:  MySQL-Gleitaggregation/Jahresaggregation – Prinzip und Anwendungsbeispielanalyse

Artikel empfehlen

So vermeiden Sie die Duplizierung von Daten beim Einfügen in einen MySql-Batch

Inhaltsverzeichnis Vorwort 1. Einfügen von ignore...

So setzen Sie das MySQL-Root-Passwort unter Windows zurück

Heute habe ich festgestellt, dass WordPress keine...

MySQL-Komplettabsturz: Detaillierte Erklärung der Abfragefilterbedingungen

Überblick In tatsächlichen Geschäftsszenarioanwen...

Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux

Wenn Sie Bash beenden möchten, haben Sie zwei Mög...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...

Die vollständige Liste der MIME-Typen

Was ist ein MIME-TYP? 1. Zunächst müssen wir vers...

JavaScript verwendet häufig Array-Deduplizierung tatsächliche Kampf Quellcode

Mit der Array-Deduplizierung wird man häufig bei ...

Tiefgreifendes Verständnis der CSS @font-face-Leistungsoptimierung

In diesem Artikel werden hauptsächlich allgemeine...

JavaScript-Farbbetrachter

In diesem Artikelbeispiel wird der spezifische Ja...

Ursachen und Lösungen für domänenübergreifende Probleme bei Ajax-Anfragen

Inhaltsverzeichnis 1. Wie entsteht Cross-Domain? ...

Eine kurze Analyse der Verwendung der Zero-Copy-Technologie in Linux

In diesem Artikel werden mehrere wichtige Zero-Co...

So erhalten und verwenden Sie die Zeit im Linux-System

Es gibt zwei Arten von Linux-Systemzeiten. (1) Ka...

Einführung in die Docker-Architektur

Docker umfasst drei grundlegende Konzepte: Image:...