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

Aggiungi 'Copia contenuto' al menu di Windows 11
Windows 11

Aggiungi 'Copia contenuto' al menu di Windows 11

Cambia il nome visualizzato in Plex
Streaming

Cambia il nome visualizzato in Plex

Data installazione e uptime: Windows e Linux
Sistema

Data installazione e uptime: Windows e Linux

Aggiungere Modalità provvisoria al menu contestuale
Windows

Aggiungere Modalità provvisoria al menu contestuale

Installare Scientific Linux 6.1 da DVD
Linux

Installare Scientific Linux 6.1 da DVD

GPS esterno per iPad/iPhone: guida pratica
Guide tecniche

GPS esterno per iPad/iPhone: guida pratica