HowtoForge

How To Monitor Hard Drive Usage In Ubuntu Server Using The Visual Philesight CGI Script

How To Monitor Hard Drive Usage In Ubuntu Server Using The Visual Philesight CGI Script

This process will add a nice visual representation of the hardrive usage on your Ubuntu server which you can acces over your local network. It's based on "philesight" which is a nice clone of philelight. Philesight is available at http://zevv.nl/play/code/philesight/.

Assuming you already have an Ubuntu LAMP (linux apache mysql php) server with the web root at /var/www and have accesss to the ubuntu terminal carry, out the following.

Install dependancies:

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

Enable cgi scripting if not already:

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

Edit your apache2 site file:

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

Make sure there is a section that reads as follows:

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

Close and save (ctrl-x then y).

Get philesight:

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

Unzip philesight and move it into the desired directory.

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

Move the ruby functions into place and make them executable:

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

Edit the philesight file to correctly locate itself when called from a cron job:

sudo nano /usr/bin/philesight

Edit the line which currently reads:

require 'philesight'

to read instead:

require '/usr/bin/philesight'

Close and save.

Prepare directory database:

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

This may take some time to run depending on the amount of data on your harddrive.

Prepare your web files:

cd ~/downloads/philesight
sudo nano philesight.cgi

Edit the following parameters to read as follows:

 $path_db = "/usr/lib/philesightdb"

Exit and save.

Copy the cgi script into place and make it executable:

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

Make the ruby scripts available to the cgi file:

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

Reload the webserver:

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

The hard drive usage of your server will now be available at:

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

When you first load it you may see a graph indicating that 100% of your Hard disk is useed up by "proc". Ignore this and scrole down and you will see a list of folders located in the root directory. Clicking on each of these will give a visual representation of the material containined with in each.

Now we're going to add a cron job so the images update at least daily.

sudo nano /etc/cron.daily/philesight

Copy in the following lines then close and save:

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

Now make that cron job executable:

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


 

How To Monitor Hard Drive Usage In Ubuntu Server Using The Visual Philesight CGI Script