Monitorare l'uso del disco su Ubuntu Server con lo script CGI 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)
- 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.
Materiali simili
Aggiungi 'Copia contenuto' al menu di Windows 11

Cambia il nome visualizzato in Plex

Data installazione e uptime: Windows e Linux
Aggiungere Modalità provvisoria al menu contestuale

Installare Scientific Linux 6.1 da DVD
