Monday, May 2, 2011

Perl Script for Disk Management in Linux

Here is a script that detects any read write operation to your hard disk.
You can also change the location to any other as required by giving the path to $dir


#!/usr/bin/perl
use strict;
use warnings;
use Filesys::DiskSpace;

my $dir = "/";

my $old_free=194466108;

my $warning_level=10;
while (1)
{
my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $dir;
my $df_free = (($avail) / ($avail+$used)) * 100.0;


if ($df_free < $warning_level) {

if ($old_free == $avail)
{
#do nothing
}
else
{
my $now = localtime time;
my $new_av = ($avail / 1000 );
my $out = sprintf("Read/Write from disk Detected at $now. Free Disk space is %0.2f%% ($new_av MB) WARNING:LOW DISK SPACE!!! PLEASE REMOVE SOME ITEMS\n",$df_free);
print $out;
$old_free = $avail;
}
}
else
{
if ($old_free == $avail)
{
#do nothing
}
else
{
my $now = localtime time;
my $new_av = ($avail / 1000 );
my $out = sprintf("Read/Write from disk Detected at $now. Free Disk space is %0.2f%% ($new_av MB) YOU CAN STILL COPY ITEMS TO THIS DISK\n",$df_free);
print $out;
$old_free = $avail;
}
}
}

No comments:

Post a Comment