Nothing fancy, just emails someone a quick list of how the disks are doing for free space.
#!/usr/bin/perl -w
use strict;
## Disk Monitor for linux boxes.
## To be run daily.
## Grabs the disk usage from the computer and emails it to an\@email.c
+om
use Filesys::DiskFree;
use Sys::Hostname;
## Get the ip address of the local interface.
my $ipaddr;
$_ = `/sbin/ifconfig eth0`;
(/inet addr:((\d{1,3}\.?){4})/m) ? ($ipaddr = $1) : (warn 'ifconfig
+failed');
## Set up the top of the mail's body and its subject with identifying
+info
my $subject="Subject: Disk Usage for ".hostname()." $ipaddr\n
+";
my $body=localtime()."\n\n".hostname()."\n\n$ipaddr\n\n";
my $handle = new Filesys::DiskFree;
$handle->df();
my @disks=$handle->disks();
my $disk;
foreach $disk (@disks){
my $dt=$handle->total($disk)/1024;
my $df= $handle->avail($disk)/1024;
my $du=int(($df/$dt)*100);
$body.="$disk has $du% free\n"
}
## Send it by email
my $sendmail= "/usr/sbin/sendmail -t";
my $reply_to="Reply-to: an\@email.com\n";
my $to="To: an\@email.com\n";
my $from="From: an\@email.com\n";
open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
print SENDMAIL $to;
print SENDMAIL $from;
print SENDMAIL $reply_to;
print SENDMAIL $subject;
print SENDMAIL "Content-type: text/plain\n\n";
print SENDMAIL $body;
close(SENDMAIL);