lunes, 23 de abril de 2012

Qué es lo que ocupa tanto espacio en mi maquina? - Agedu

Siempre olvido como se llama la herramienta que me ayuda a encontrar en Linux y MacOSX, todos esos archivos gigantes que están llenando el disco duro, para solucionar eso voy a escribir esta corta entrada. Espero que pueda ser de interés para alguien mas.

La herramienta se llama Agedu y esta licenciada bajo un estilo similar al licenciamiento BSD, así que puedes usarlo para lo que quieras siempre que mantengas el mensaje de la licencia, para mas información leer el archivo LICENCE que se encuentra dentro del .tgz original.

Los pasos para usar la herramienta son:

1) Lo primero que hacemos es descargar las fuentes de la aplicación:

$wget http://www.chiark.greenend.org.uk/~sgtatham/agedu/agedu-r9424.tar.gz

Si lo quieren hacer desde el repositorio subversion lo pueden hacer con el comando:

svn co svn://svn.tartarus.org/sgt/agedu


2) Luego lo descomprimimos y entramos al directorio creado: 
nonroot $tar zfvx agedu-r9424.tar.gz  && cd agedu-r9424
x agedu-r9424/
x agedu-r9424/alloc.h
x agedu-r9424/winscan.c
x agedu-r9424/licence.c
x agedu-r9424/fgetline.h
x agedu-r9424/trie.c
...

3) Compilamos con los tres pasos mágicos:
./configure
make
make install

Al compilarlo en MacOSX obtengo el siguiente error:


httpd.c: In function 'make_listening_sockets':
httpd.c:547: error: 'HOST_NAME_MAX' undeclared (first use in this function)
httpd.c:547: error: (Each undeclared identifier is reported only once
httpd.c:547: error: for each function it appears in.)
make[1]: *** [httpd.o] Error 1
make: *** [all] Error 2

Para solucionarlo defino la variable en el archivo httpd.h

nonroot $diff -uN httpd.h.orig httpd.h      
--- httpd.h.orig        2012-04-23 15:00:11.000000000 -0500
+++ httpd.h     2012-04-23 15:00:35.000000000 -0500
@@ -6,6 +6,7 @@
 #define HTTPD_AUTH_MAGIC 1
 #define HTTPD_AUTH_BASIC 2
 #define HTTPD_AUTH_NONE  4
+#define HOST_NAME_MAX 256

 struct httpd_config {
     const char *address, *port;
nonroot $

Eso significa que agrego la línea: #define HOST_NAME_MAX 256 en el archivo httpd.h

Luego intento el make y el make install, esta vez no hay problemas.

4) Para conocer las opciones de agedu podemos ejecutar el comando sin opciones, eso nos muestra algo similar a:
nonroot $agedu 
  usage: agedu [options] action [action...]
actions: -s, --scan directory    scan and index a directory
         -w, --web               serve HTML reports from a temporary web server
         -t, --text subdir       print a plain text report on a subdirectory
         -R, --remove            remove the index file
         -D, --dump              dump the index file on stdout
         -L, --load              load and index a dump file
         -S, --scan-dump directory scan only, generating a dump
         -H, --html subdir       print an HTML report on a subdirectory
         --cgi                   do the right thing when run from a CGI script
...

Las opciones básicas que uso para identificar los archivos que tienen mas peso en mi sistema y por ende que tienen mayor posibilidad de ser eliminados son:


nonroot $agedu -s /

Este comando permite indexar todo el sistema partiendo desde la raiz, en un sistema con 250GB de disco puede tomar aproximadamente  10 minutos hacerlo. El resultado será almacenado en el archivo llamado agedu.dat.

Una vez indexado el sistema, puedo visualizar los resultado con el siguiente comando:

nonroot $agedu -w

Using HTTP Basic authentication
Username: agedu
Password: t1nntgbe9atj2jkq
URL: http://localhost:64230/


Lo que pondrá en funcionamiento un servicio web que requiere autenticación básica. Los datos para el proceso de login se muestran una vez se ejecuta el comando, en este caso el usuario es agedu y la contraseña t1nnrgbe8atj2jkq.

Para ingresar a los resultados, apuntamos el navegador a: http://localhost:64230/

                                      

Eso es todo!, ya podemos explorar de forma ordenada el sistema y empezar a eliminar todos esos datos que ya no queremos y nos están ocupando espacio.

Si alguien quiere entender cual es el algoritmo usado para indexar la información la pueden leer en:

Pd: Este software también funciona en Windows.

Entradas populares