• seguici su feed rss
  • seguici su twitter
  • seguici su linkedin
  • seguici su facebook
  • cerca

SEI GIA' REGISTRATO? EFFETTUA ADESSO IL LOGIN.



ricordami per 365 giorni

HAI DIMENTICATO LA PASSWORD? CLICCA QUI

NON SEI ANCORA REGISTRATO ? CLICCA QUI E REGISTRATI !

Come trovare files e directories di grandi dimensioni, in Linux

di :: 02 marzo 2020
Come trovare files e directories di grandi dimensioni, in Linux

Un bravo amministratore Linux deve periodicamente controllare quali sono i files e le cartelle che occupano più spazio su disco.

A me, ad esempio, capita spesso di dover monitorare file di LOG, e devo aver modo di controllare in modo agevole se esistono file log che stanno assumento dimensioni troppo elevate.

In questo articolo ti spiego come trovare questi elementi nel filesystem Linux, utilizzando i comandi du e find.

Utilizzo del comando "du" per trovare directories e files che occupano il maggiore spazio disco

Ad esempio, per individuare directories e files che occupano maggiore spazio disco all'interno della directory dove collochiamo le nostre pagine web, cioè "/var/www/html", utilizziamo:

# du -a /var/www/html

Il risultato sarà un elenco molto lungo di tutte le directories e files presenti nella cartella "/var/www/html" con il relativo peso.

...................
8       /var/www/html/op/pub/js/tinymce/plugins/visualblocks/css
12      /var/www/html/op/pub/js/tinymce/plugins/visualblocks
4       /var/www/html/op/pub/js/tinymce/plugins/visualchars/plugin.min.js
4       /var/www/html/op/pub/js/tinymce/plugins/visualchars
4       /var/www/html/op/pub/js/tinymce/plugins/wordcount/plugin.min.js
4       /var/www/html/op/pub/js/tinymce/plugins/wordcount
444     /var/www/html/op/pub/js/tinymce/plugins
4       /var/www/html/op/pub/js/tinymce/skins/lightgray/content.min.css
4       /var/www/html/op/pub/js/tinymce/skins/lightgray/content.inline.min.css
36      /var/www/html/op/pub/js/tinymce/skins/lightgray/skin.ie7.min.css
36      /var/www/html/op/pub/js/tinymce/skins/lightgray/skin.min.css
12      /var/www/html/op/pub/js/tinymce/skins/lightgray/fonts/tinymce-small.eot
12      /var/www/html/op/pub/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf
28      /var/www/html/op/pub/js/tinymce/skins/lightgray/fonts/tinymce-small.svg
12      /var/www/html/op/pub/js/tinymce/skins/lightgray/fonts/tinymce-small.woff
...................

Non è però questo il risultato che vogliamo ottenere.

A noi servono directories e files che occupano il maggiore spazio su disco, per cui ordiniamo ("sort") il risultato per peso ("-n") in ordine decrescente ("-r") cioè dal più grande al più piccolo

# du -a /var/www/html | sort -n -r

Il risultato sarà un elenco ordinato, ma che contiene ancora tutte le directories e files

Limitiamoci ai primi 5 elementi:

# du -a /var/www/html | sort -n -r | head -n 5

Ecco il risultato

94472   /var/www/html
47760   /var/www/html/site1
46700   /var/www/html/site2
29984   /var/www/html/site1/common
29792   /var/www/html/site1/write

Ricapitolando

  • du: mostra l'elenco delle directories e subdirectories con relativo spazio occupato
  • - a: visualizza anche i files
  • sort: ordina le righe ottenute
  • -n: ordina le righe ottenute "numericamente" (invece che alfabeticamente)
  • -r: inverte il risultato
  • head: stampa a video le prime 10 righe del risultato:
  • -n: stampa a video prime "n" righe che vogliamo visualizzare, nel nostro esempio 5.

Il peso di files e directories è espresso in bytes.

Per ottenere un peso in un formato più leggibile, in Kilobytes, Megabytes, Gigabytes, utilizziamo l'opzione "-h" ("human readable")

# du -h /var/www/html | sort -n -r | head -n 5

Ecco il risultato

1020K   /var/www/html/contents/8/289
1020K   /var/www/html/contents/4/32600.mp4
1020K   /var/www/html/contents/4/15966.mp4
1020K   /var/www/html/contents/4/15148.mp4
1020K   /var/www/html/contents/1/850.jpg

Vediamo adesso altri utilizzi del comando "du".

L'esempio seguente mostra le 5 directories, che, nel nostro filesystem, stanno consumando più spazio su disco:

# du -ahs * | sort -rh | head -5

Questo esempio invece moltra cartelle e files più grandi, comprese le sottodirectory:

# du -Sh | sort -rh | head -5

Per ulteriori specifiche relative all'utilizzo del comando "du" si rimanda all'articolo dedicato.

Utilizziamo il comando "find" per troviamo i files con peso maggiore

Se desideriamo visualizzare solo i file più grandi, all'interno della nostra cartella web, eseguiamo il seguente comando:

# find /var/www/html/ -type f -exec du -Sh {} + | sort -rh | head -n 5

Oppure in alternativa

# find /var/www/html/ -type f -printf "%s %p\n" | sort -rn | head -n 5

Il risultato sarà

2,6M    /var/www/html/sito1/pub/js/ViewerJS/pdf.worker.js
1,9M    /var/www/html/sito1/pub/js/news.js
1,5M    /var/www/html/sito1/write/lista.csv
1,3M    /var/www/html/sito1/log/ws.log
1,1M    /var/www/html/sito1/log/ws2.log

Nota: Se non indichiamo il path della directory da analizzare, il comando "find" considera la directory in cui ci troviamo nel filesystem:

# find -type f -exec du -Sh {} + | sort -rh | head -n 5

Il risultato sarà

28K     ./.bash_history
16K     ./sent
4,0K    ./.tcshrc
4,0K    ./.rnd
4,0K    ./.cshrc

Se vogliamo conoscere i file che occupano maggiore spazion nella cartella "/var/www/html":

# find /var/www/html/ -type f -exec du -Sh {} + | sort -rh | head -n 5

Potrebbe interessarti

 
 
 
 
pay per script

Hai bisogno di uno script PHP personalizzato, di una particolare configurazione su Linux, di una gestione dei tuoi server Linux, o di una consulenza per il tuo progetto?

x

ATTENZIONE