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

Lösung für den Konfigurationsfehler des Nginx-SSL-Zertifikats

1. Einleitung Wenn ein Webprojekt auf unserem Lin...

Vue implementiert eine einfache Slider-Verifizierung

Dieses Artikelbeispiel zeigt die Implementierung ...

So implementieren Sie ein Hover-Dropdown-Menü mit CSS

Wie üblich werde ich heute über einen sehr prakti...

Was sind die Unterschiede zwischen xHTML- und HTML-Tags?

Alle Tags müssen klein geschrieben sein In XHTML m...

Zeitzonenprobleme mit im Docker-Container bereitgestelltem Django

Inhaltsverzeichnis Zeitzonenkonfiguration in Djan...

Erkennen Sie den CSS-Ladeeffekt nach dem Klicken auf die Schaltfläche

Da es in dem Produkt meiner Firma eine Schaltfläc...

Warum gibt es das in JS?

Inhaltsverzeichnis 1. Nachfrage 2. Lösung 3. Die ...

Lösung für das Problem, dass der Docker-Container nicht gestoppt werden kann

Die Lösung lautet wie folgt: 1. Container löschen...

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...