Guida alle tecnologie

Monitorare l'uso del disco su Ubuntu Server con lo script CGI Philesight

5 min read Server Aggiornato 02 Oct 2025
Monitorare disco Ubuntu con Philesight
Monitorare disco Ubuntu con Philesight

TL;DR

Philesight crea una rappresentazione visiva dello spazio su disco accessibile via rete locale. Questo tutorial mostra come installare le dipendenze, configurare Apache/CGI, indicizzare il filesystem e programmare un cron giornaliero per aggiornare le immagini.

Importante: mantieni attenti i permessi e limita l’accesso CGI alla rete locale per motivi di sicurezza.

Obiettivo e varianti di ricerca

Obiettivo primario: monitorare e visualizzare l’utilizzo del disco su un server Ubuntu tramite Philesight. Varianti correlate: monitoraggio spazio disco Ubuntu, philesight ubuntu, visualizzare utilizzo disco, CGI disk map, tool grafico spazio disco.

Requisiti preliminari

  • Server Ubuntu con LAMP (Linux, Apache, MySQL, PHP) e web root in /var/www.
  • Accesso shell (SSH o console) con privilegi sudo.
  • Connettività per scaricare philesight: http://zevv.nl/play/code/philesight/.

Se usi una versione recente di Ubuntu, i nomi dei pacchetti Ruby/Cairo potrebbero variare; adatta i nomi dei pacchetti se il tuo gestore segnala che non esistono.

Installare le dipendenze

Esegui i comandi seguenti per installare le librerie richieste (lascia i comandi esattamente come mostrati):

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

Nota: su Ubuntu moderne potresti dover usare pacchetti aggiornati o versioni alternative di Ruby/Cairo. Se apt non trova i pacchetti, cerca i nomi corretti per la tua release.

Abilitare lo scripting CGI

Se la cartella cgi-bin non esiste, creala e imposta i permessi:

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

Modificare il file del sito Apache

Apri il file di configurazione del sito predefinito:

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

Assicurati che esista una sezione simile a questa (mantieni i percorsi così come sono):

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

Chiudi e salva (Ctrl+X, poi Y).

Note: su Apache 2.4 le direttive “Order”/“Allow” possono essere sostituite da “Require all granted”; adatta la configurazione alla tua versione.

Scaricare Philesight

Scarica il pacchetto in una directory temporanea:

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

Estrarre e spostare i file

Estrai e rinomina la cartella:

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

Sposta gli script Ruby in /usr/bin e rendili eseguibili:

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

Correggere il percorso nel file philesight

Apri lo script principale per modificarne il require quando chiamato da cron:

sudo nano /usr/bin/philesight

Trova la riga attuale:

require 'philesight'

Sostituiscila con:

require '/usr/bin/philesight'

Chiudi e salva.

Preparare il database delle directory (indicizzazione)

Esegui l’indicizzazione iniziale (può richiedere molto tempo in base alla dimensione del disco):

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

Questo crea /usr/lib/philesightdb usato dallo script CGI per generare le immagini.

Preparare i file web

Apri il file philesight.cgi scaricato:

cd ~/downloads/philesight  
sudo nano philesight.cgi

Modifica il parametro del database perché punti alla directory creata:

 $path_db = "/usr/lib/philesightdb"

Salva e chiudi.

Copia lo script CGI nella cgi-bin e rendilo eseguibile:

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

Crea un link simbolico per rendere gli script Ruby disponibili al CGI:

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

Riavviare o ricaricare Apache

Esegui i comandi di restart/force-reload per applicare le modifiche:

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

Accedere all’interfaccia

L’interfaccia sarà raggiungibile da browser (nella LAN):

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

Al primo avvio potresti vedere un grafico che indica il 100% occupato da “proc”; ignoralo e scorri per vedere l’elenco delle cartelle radice. Cliccando su una cartella otterrai la visuale a torta / mappa ad albero dei file.

Aggiornamento automatico: cron giornaliero

Per aggiornare le immagini almeno una volta al giorno, crea uno script cron:

sudo nano /etc/cron.daily/philesight

Incolla queste righe, poi salva:

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

Rendi lo script eseguibile:

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

Nota: il comando rimuove la cartella /usr/lib/philesightdb prima di ricrearla; valuta lo spazio temporaneo e i permessi. In alternativa potresti eseguire l’indicizzazione incrementale se supportata.

Verifiche e risoluzione dei problemi

  • Se Apache restituisce 403/500: verifica i permessi di /usr/lib/cgi-bin e che il modulo CGI sia abilitato.
  • Se i pacchetti Ruby non si installano: cerca equivalenti per la tua versione di Ubuntu (Ruby2.x, libdb aggiornate).
  • Se nel grafico compare “proc” al 100%: è un effetto della visualizzazione; scendi nella pagina e controlla le directory reali.
  • Se l’indicizzazione non termina: eseguila manualmente in modalità verbose e controlla processi bloccati.

Quando questa soluzione fallisce o non è ideale

  • Server con politiche di sicurezza rigidissime che vietano script CGI pubblici: preferisci strumenti che non espongono CGI (es. esportare dati per visualizzazione offline).
  • Sistemi con dischi molto grandi o filesystem distribuiti: l’indicizzazione completa può essere lenta o non praticabile.

Alternative consigliate

  • ncdu (CLI, interattivo): veloce e semplice per analisi manuale.
  • Baobab (Disk Usage Analyzer): utile su desktop GNOME.
  • Webmin/Glances: per monitoraggio più ampio del sistema con interfaccia web.

Checklist per i ruoli

  • Sysadmin:
    • Verificare permessi su /usr/lib/cgi-bin e /usr/bin/philesight*
    • Limitare accesso CGI con regole Apache (es. Require ip per subnet locale)
    • Controllare cron e log (/var/log/apache2/error.log)
  • Operatore:
    • Accedere via browser dalla rete autorizzata
    • Segnalare directory che occupano spazio e pianificare pulizie/archiviazioni

Mini-metodologia (passi rapidi)

  1. Installare dipendenze. 2. Abilitare CGI. 3. Scaricare ed estrarre philesight. 4. Spostare e rendere eseguibili gli script. 5. Indicare il DB e indicizzare. 6. Posizionare il CGI in cgi-bin. 7. Riavviare Apache. 8. Impostare cron giornaliero.

Criteri di accettazione

  • L’URL http://your_server_name/cgi-bin/philesight.cgi restituisce la pagina con la mappa del disco.
  • L’indicizzazione termina senza errori e /usr/lib/philesightdb è presente.
  • Il cron giornaliero aggiorna l’indice senza richiedere intervento manuale.

Sicurezza e privacy

  • Limitare l’accesso alla pagina CGI alla rete interna o a utenti autenticati.
  • Non esporre il server a Internet pubblico senza autenticazione e HTTPS.
  • Evitare che i file di log contenenti percorsi sensibili siano accessibili tramite web.

Riepilogo

Hai ora una vista grafica dell’utilizzo del disco disponibile via browser locale tramite Philesight. Controlla i permessi, limita l’accesso CGI e mantieni aggiornato il database con un cron giornaliero.


Se vuoi, posso fornirti una versione del snippet Apache adattata a Apache 2.4 o un playbook Ansible per automatizzare l’installazione.

Autore
Redazione

Materiali simili

Installare e usare Podman su Debian 11
DevOps

Installare e usare Podman su Debian 11

Guida rapida a apt-pinning su Debian
Linux

Guida rapida a apt-pinning su Debian

Forzare FSR 4 con OptiScaler: guida completa
Guide.

Forzare FSR 4 con OptiScaler: guida completa

Dansguardian + Squid NTLM su Debian Etch
Rete

Dansguardian + Squid NTLM su Debian Etch

Riparare errore installazione SD su Android
Android

Riparare errore installazione SD su Android

Cartelle di rete con KNetAttach e remote:/
Linux

Cartelle di rete con KNetAttach e remote:/