dimarts, 16 de juliol de 2013

Finding the largest files in Linux

Trobar fitxers grans en linux


Per a trobar els fitxers o directoris mes grans d'un sistema linux son molt útils les següents comandes:
find . -type d -print0 | xargs -0 du -s | sort -nr | head \
     -20 | cut -f2 | xargs -I{} du -sh {}
find . -type f -print0 | xargs -0 du -s | sort -nr | head \
     -20 | cut -f2 | xargs -I{} du -sh {}
Existeixen dues tecniques per tractar els espais en els noms dels fitxers. Utilitzant find -print 0 | xargs -0 que utilitzen delimitadors null en lloc de espais. La segona xargs -I{} utilitza new lines en lloc de espais per a marcar el final dels diferents elements.

Si el mètode anterior tarda molt, podem utilitzar el següent mètode més ràpid però menys precís.
du --max-depth=4 -x | sort -nr | head -n 20

Altres mètodes mes imperfectes:


La comanda du permet obtenir una estimació del espai que els fitxers mes pesats d'un directori, però no es recursiva.
du -sm * |sort -nr | head -10 
du -a /var | sort -nr | head -n 10
Aquesta comanda presenta el problema amb els fitxer majors de 999 Mb que no els ordena be.
for i in G M K; do du -ah  2>/dev/null | grep [0-9]$i | sort -nr -k 1; \
    done | head -n 10
La comanda find serveix per a buscar qualsevol fitxer, a més per a cada fitxer trobat permet executar una comanda sobre ell. El següent exemple busca per tot el sistema de fitxers, fitxers amb mes de 20Mb, executa un ls per cada fitxer i despres formateja l'eixida amb les columnes correctes.
find / -type f  -size +20M -exec ls -lh {} \; 2>/dev/null |awk  \
    '{print $NF ": " $5}' | sort -nrk 2,2
Aquesta comanda recorre tot el sistema de fitxers:
du -sk $(find . -type d) | sort -n -k 1
find . -type d -exec du -sk {} \; |  sort -n -k 1
A la fi les comandes mes eficients per a realitzar aquesta tasca son les 2 primeres que hem presentat.

Opcions de les comandes:


Les opcions utils de la comanda du son les següents:
   -h -> Human readable.
   -s -> Resum. Agrupa per directoris.
   -m -> Block size 1M
   -a -> Informació detallada de tots els fitxers, no sols directoris.
   -x -> Només un sistema de fitxers, evita directoris en altres 
         sistemes de fitxers.
La comanda sort serveix per ordenar qualsevol eixida de text.
   -n ordenacio númerica.
   -r ordenacio inversa
   -k per a marcar columnes amb les que ordenar
La comanda find es poden buscar fitxer majors o menors que un determnat valor utilitzant el següent flag:
   +size major que
   -size menor que

Enllaços:


http://superuser.com/questions/9847/linux-utility-for-finding-the-largest-files-directories
http://www.cyberciti.biz/faq/find-large-files-linux/
http://www.cyberciti.biz/faq/how-do-i-find-the-largest-filesdirectories-on-a-linuxunixbsd-filesystem/
http://linuxlookup.com/howto/find_all_large_files_linux_system

Cap comentari:

Publica un comentari a l'entrada