GNU/Linux >> Linux Esercitazione >  >> Linux

Come risolvere le statistiche di utilizzo del disco irregolari da du (comando Linux)

Di recente sulla mia scatola del server Linux, una delle partizioni del disco era piena e ha dovuto eliminare 100 MB di file di grandi dimensioni per liberare lo spazio. Dopo aver liberato lo spazio, la partizione continuava a mostrare pieno e nessuno spazio libero per salvare i miei file. Più tardi con mia sorpresa ho notato la disparità di seguito:

Il comando di utilizzo del disco (du) ha mostrato lo spazio utilizzato solo come 11G!

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

Il comando precedente non include file e directory di punti nascosti. Usa il comando seguente per trovare anche l'utilizzo del disco da parte di file e directory con punti nascosti.

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

Se desideri ancora elencare i file esatti e i suoi percorsi assoluti, usa il comando seguente:

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

Ma il comando df mostrava come la partizione del disco /myhome/ era piena!!!

-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

Ora la sfida è scoprire dov'è lo spazio rimanente? È nascosto da qualche parte?

Utilizza il comando LSOF per trovare i file tenuti aperti

Potresti aver eliminato alcuni file, ma il processo sarebbe rimasto aperto. Fino a quando non chiudi quei file, lo spazio non verrà liberato. Sotto il comando "lsof"  ti indicherà quali file eliminati sono ancora aperti!

-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)

Ora avresti qualche indizio, vero? Sì, il file /myhome/var/container.log che è stato eliminato è ancora aperto dall'ID processo:10249. Ora vai alla directory dell'ID processo corrispondente in /proc come mostrato di seguito:

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

Elenca i file per vedere il gestore di file che si collega al file eliminato.

-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)

Ora cancella il corrispondente gestore di file per liberare spazio usando il comando seguente:

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

Nota che l'inode sarebbe ancora aperto, ma ora ha una lunghezza pari a 0.

-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)

Ora controlla la partizione del disco per avere un sorriso in faccia.

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

Linux
  1. Come cancellare un comando specifico dalla cronologia di Bash in Linux

  2. Linux:come ridurre al minimo l'utilizzo dello spazio su disco?

  3. Come ottenere l'utilizzo del disco dalla riga di comando?

  4. Comando Linux df

  5. Come monitorare l'utilizzo della rete con nload in Linux?

Come rimuovere un comando dalla cronologia in Linux

Come controllare le statistiche di rete Linux dalla riga di comando

Come visualizzare l'utilizzo del disco su Linux usando Baobab

Come visualizzare l'utilizzo dello spazio su disco con Vizex

Linux du Command Esempi più utili

Come analizzare l'utilizzo del disco nella riga di comando di Linux?