Guía de tecnologías

Monitorizar el uso de disco en Ubuntu Server con el script CGI Philesight

4 min read Administración Actualizado 02 Oct 2025
Monitorizar uso de disco en Ubuntu con Philesight
Monitorizar uso de disco en Ubuntu con Philesight

Antes de empezar

  • Requisitos: un servidor Ubuntu con pila LAMP (Linux, Apache, MySQL, PHP) y acceso a la terminal. Se asume que la raíz web es /var/www.
  • Definición rápida: Philesight es un script Ruby que genera gráficos visuales del uso del disco basados en un índice de ficheros.

Pasos principales

A continuación están los comandos y archivos que hay que modificar. Ejecuta cada bloque en la terminal con permisos sudo cuando se indique.

1) Instalar dependencias

Ejecuta:

sudo apt-get install libdb4.2-ruby1.8 libcairo-ruby1.8 libapache2-mod-perl2 libapache2-mod-php5 ruby

2) Habilitar CGI si no está activo

sudo mkdir /usr/lib/cgi-bin  
sudo chmod 755 /usr/lib/cgi-bin

3) Editar la configuración del sitio de Apache

 sudo nano /etc/apache2/sites-available/default

Asegúrate de que existe una sección como esta (mantén exactamente los valores dentro del bloque):

         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/  
          
                AllowOverride None  
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch  
                Order allow,deny  
                Allow from all  
        

Guarda y cierra (Ctrl+X, luego Y).

4) Descargar Philesight

mkdir ~/downloads  
cd ~/downloads  
sudo wget http://zevv.nl/play/code/philesight/philesight-20120427.tgz

5) Descomprimir y mover

tar -xvf philesight-20120427.tgz  
sudo mv philesight-20120427 philesight  
cd philesight

6) Instalar los binarios Ruby

sudo mv philesight /usr/bin/philesight  
sudo mv philesight.rb /usr/bin/philesight.rb  
sudo chmod a+x /usr/bin/philesight  
sudo chmod a+x /usr/bin/philesight.rb

7) Asegurar que el script localiza su ruta cuando lo ejecuta cron

sudo nano /usr/bin/philesight

Cambia la línea que actualmente lee:

require 'philesight'

por:

require '/usr/bin/philesight'

Guarda y cierra.

8) Crear la base de datos de índices

cd /usr/bin/  
sudo /usr/bin/philesight --db /usr/lib/philesightdb --index /

Nota: este paso puede tardar según la cantidad de datos en el disco.

9) Preparar los archivos web

cd ~/downloads/philesight  
sudo nano philesight.cgi

Edita la variable para que apunte al índice:

 $path_db = "/usr/lib/philesightdb"

Guarda y cierra.

10) Instalar el CGI y permisos

sudo mv philesight.cgi /usr/lib/cgi-bin/philesight.cgi  
sudo chmod a+x /usr/lib/cgi-bin/philesight.cgi

Hacer disponibles los scripts Ruby al CGI:

sudo ln -s /usr/bin/philesight.rb /usr/lib/cgi-bin/philesight.rb  
sudo chmod a+x /usr/bin/philesight.rb

11) Reiniciar Apache

sudo apache2ctl restart  
sudo service apache2 restart  
sudo /etc/init.d/apache2 force-reload

12) Acceder a la interfaz

Abre en un navegador local:

http://your_server_name/cgi-bin/philesight.cgi

Si al cargar ves un gráfico que indica que “proc” usa el 100% del disco, ignóralo y baja para ver la lista de carpetas del directorio raíz. Haz clic en una carpeta para ver la representación visual de su contenido.

Cron diario para actualizar las imágenes

Crear el script en cron.daily:

sudo nano /etc/cron.daily/philesight

Pega estas líneas, guarda y cierra:

#!/bin/sh  
sudo rm /usr/lib/philesightdb  
sudo /usr/bin/philesight --db /usr/lib/philesightdb --index /

Hazlo ejecutable:

sudo chmod a+x /etc/cron.daily/philesight

Nota: el script elimina y vuelve a crear el índice cada día. Para índices grandes, considera programarlo semanalmente o usar una versión incremental si está disponible.

Solución de problemas frecuente

  • Apache no ejecuta CGI: verifica que la sección ScriptAlias y Directory esté correctamente añadida y que Apache se haya reiniciado.
  • Permisos: comprueba que /usr/lib/cgi-bin/ y /usr/bin/philesight sean ejecutables (chmod a+x).
  • Indexado muy lento: limita el índice a rutas concretas en vez de “/“ o ejecuta el indexado en un período de baja carga.
  • Errores Ruby: asegúrate de que Ruby y las librerías (cairo, db) están instaladas en las versiones compatibles.

Alternativas y cuándo usar cada una

  • ncdu (consola): más ligera para diagnósticos rápidos por SSH.
  • Baobab (GUI, GNOME): útil en escritorios, no en servidores sin entorno gráfico.
  • Tools comerciales/SIEM: cuando necesitas trazabilidad, alertas y control de acceso avanzado.

Lista de comprobación por rol

  • Administrador de sistemas: verificar permisos, cron y reinicio de Apache.
  • Responsable de seguridad: revisar accesos web a /cgi-bin y aplicar restricción por IP si procede.
  • Operador de backup: excluir la carpeta de índices /usr/lib/philesightdb de las copias de seguridad si se regenera automáticamente.

Medidas de seguridad recomendadas

  • Restringe el acceso a philesight.cgi por firewall o reglas de Apache (Allow from ).
  • Evita exponer el CGI a Internet público. Si necesitas acceso remoto, usa VPN o túnel SSH.
  • Mantén los paquetes y Ruby actualizados. Revoca permisos innecesarios en /usr/bin y /usr/lib.

Criterios de aceptación

  • La URL http://your_server_name/cgi-bin/philesight.cgi carga sin errores.
  • El índice se actualiza según la frecuencia esperada (cron diario o personalizada).
  • Los permisos no permiten ejecución por usuarios no autorizados fuera de los procesos necesarios.

Mini-metodología de verificación rápida

  1. Ejecuta manualmente: sudo /usr/bin/philesight –db /usr/lib/philesightdb –index / y observa la salida. 2. Accede al CGI en el navegador. 3. Revisa logs de Apache (/var/log/apache2/) si hay errores 500/CGI.

Glosario breve

  • CGI: Common Gateway Interface, método para ejecutar scripts desde un servidor web.
  • Indexar: crear una base de datos de metadatos sobre archivos y carpetas para análisis rápido.

Resumen final

Philesight proporciona una forma visual y rápida de inspeccionar el uso de disco en servidores Ubuntu con un CGI accesible desde la red local. Sigue los pasos para instalar dependencias, configurar Apache para CGI, indexar el disco y programar la actualización automática. Aplica restricciones de acceso y revisa la solución de problemas si surge algún error.

Importante: no expongas esta herramienta directamente a Internet sin controles de acceso y supervisión.

Autor
Edición

Materiales similares

Fecha de instalación y uptime en Windows y Linux
Sistemas

Fecha de instalación y uptime en Windows y Linux

Agregar Modo Seguro al menú contextual de Windows 11
Windows 11

Agregar Modo Seguro al menú contextual de Windows 11

Instalar Scientific Linux 6.1 desde DVD
Linux

Instalar Scientific Linux 6.1 desde DVD

GPS externo en iPad/iPhone: guía paso a paso
Hardware iOS

GPS externo en iPad/iPhone: guía paso a paso

Velocidad de Internet en la barra de tareas de Windows 10
Windows

Velocidad de Internet en la barra de tareas de Windows 10

Monitorizar uso de disco en Ubuntu con Philesight
Administración

Monitorizar uso de disco en Ubuntu con Philesight