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

So lösen Sie unregelmäßige Statistiken zur Festplattennutzung von du (Linux-Befehl)

Kürzlich war auf meiner Linux-Serverbox eine der Festplattenpartitionen voll und musste Hunderte von MB an großen Dateien löschen, um den Speicherplatz freizugeben. Nach dem Löschen des Speicherplatzes zeigte die Partition immer noch voll und keinen freien Speicherplatz zum Speichern meiner Dateien. Später bemerkte ich zu meiner Überraschung den folgenden Unterschied:

Der Festplattennutzungsbefehl (du) zeigte den verbrauchten Speicherplatz als nur 11 GB an!

-bash-3.2# du -chs /myhome/
11G     /myhome/
11G     total
-bash-3.2#

Der obige Befehl enthält keine versteckten Punktdateien und -verzeichnisse. Verwenden Sie den folgenden Befehl, um die Festplattennutzung auch durch versteckte Punktdateien und -verzeichnisse zu finden.

-bash-3.2#du  -sch .[!.]* /myhome/*

Wenn Sie die genauen Dateien und ihre absoluten Pfade noch weiter auflisten möchten, verwenden Sie den folgenden Befehl:

-bash-3.2# du -h -x /myhome/*

Aber der df-Befehl zeigte, dass die Festplattenpartition /myhome/ voll ist!!!

-bash-3.2$ df -h
Filesystem           	 Size  	Used 	Avail 	Use% 	Mounted on
/dev/cciss/c0d0p8      	20G  	  14G  	4.7G  	75% 	/
/dev/cciss/c0d0p9    	 9.7G 	 1.3G  	8.0G  	14% 	/tmp
/dev/cciss/c0d0p3    	 30G	 4.3G    24G  	16% 	/usr
/dev/cciss/c0d0p10        44G     41G     0G  	100% 	/myhome
/dev/cciss/c0d0p6    	  30G     27G  	670M  	98% 	/var
/dev/cciss/c0d0p5    	  30G     20G  	8.0G  	72% 	/opt
/dev/cciss/c0d0p2   	   78G    21G    54G  	28% 	/export
/dev/cciss/c0d0p1   	  4.9G    173M  4.5G   	4% 	/boot
tmpfs                	 7.9G  	 0  7	.9G   	0% 	/dev/shm
tmpfs              	 491M   61M  	431M  	13% 	/var/lib/ganglia/rrds

Die Herausforderung besteht nun darin, herauszufinden, wo der verbleibende Platz ist. Ist es irgendwo versteckt?

Verwenden Sie den LSOF-Befehl, um die offen gehaltenen Dateien zu finden

Möglicherweise haben Sie einige der Dateien gelöscht, aber der Prozess wäre noch offen geblieben. Bis Sie diese Dateien schließen, wird der Speicherplatz nicht freigegeben. Unter dem Befehl „lsof“ erfahren Sie, welche gelöschten Dateien noch offen gehalten werden!

-bash-3.2# /usr/sbin/lsof | grep deleted |grep /myhome
java      10249            ramya    1u      REG             104,10 45866276291    4645619 /myhome/var/container.log (deleted)
java      10249            ramya    2u      REG             104,10 45866276291    4645619 /myhome/var/container.log (deleted)

Jetzt hätten Sie eine Ahnung, nicht wahr? Ja, die gelöschte Datei /myhome/var/container.log ist noch offen mit der Prozess-ID:10249. Wechseln Sie nun in das entsprechende Prozess-ID-Verzeichnis in /proc, wie unten gezeigt:

-bash-3.2# cd /proc/10249/fd/

Listen Sie die Dateien auf, um den Dateihandler anzuzeigen, der mit der gelöschten Datei verknüpft ist.

-bash-3.2# ls -lrt | grep /myhome/
lrwx------ 1 ramya ramya 64 Feb 13 14:04 2 -> /myhome/var/container.log (deleted)
lrwx------ 1 ramya ramya 64 Feb 13 14:04 1 -> /myhome/var/container.log (deleted)

Löschen Sie nun den entsprechenden Dateihandler, um den Speicherplatz mit dem folgenden Befehl freizugeben:

-bash-3.2# cat /dev/null > /proc/10249/fd/1
-bash-3.2# cat /dev/null > /proc/10249/fd/2

Beachten Sie, dass der Inode immer noch offen wäre, aber jetzt die Länge 0 hat.

-bash-3.2# /usr/sbin/lsof | grep deleted |grep /myhome
java      10249            ramya    1u      REG             104,10 0    4645619 /myhome/var/container.log (deleted)
java      10249            ramya    2u      REG             104,10 0    4645619 /myhome/var/container.log (deleted)

Überprüfen Sie jetzt die Festplattenpartition, um ein Lächeln im Gesicht zu haben.

-bash-3.2# df -h |grep /myhome
/dev/cciss/c0d0p10     44G   12G   30G  28% /myhome

Linux
  1. So löschen Sie einen bestimmten Befehl aus dem Bash-Verlauf in Linux

  2. Linux – So minimieren Sie die Speicherplatznutzung?

  3. Wie erhalte ich die Festplattennutzung über die Befehlszeile?

  4. Linux-df-Befehl

  5. Wie überwache ich die Netzwerknutzung mit nload unter Linux?

So entfernen Sie einen Befehl aus dem Verlauf in Linux

So überprüfen Sie die Linux-Netzwerkstatistik über die Befehlszeile

So visualisieren Sie die Festplattennutzung unter Linux mit Baobab

So visualisieren Sie die Speicherplatznutzung mit Vizex

Linux du Command Nützlichste Beispiele

Wie analysiert man die Festplattennutzung in Befehlszeilen-Linux?