I've used
Big Brother for almost 3 years to do monitoring of systems. It's a neat program, and I highly reccomend it. However, it's written in C and sh. So i've been porting it to perl. Right now i've finished the client portion, and here's the sub i use for disk space monitoring. It may or may not be helpful to you, but what the hell...
sub DISK {
my @df = `df`;
my $red = '95';
my $yellow = '90';
my $color = "green";
my $message;
#get rid of the header from df(1)
shift @df;
#strip off leading whitespace
foreach my $lines (@df) {
my $warning;
$lines =~s/^\s+//;
my ($device,$usage) =($lines =~m|(/dev/\S+)\s+\d+\s+\d+\s+\d+\s+(\
+d+)|);
if ($usage >= $red) {
$color = "red";
$warning = "Warning";
}
elsif ($usage >= $yellow) {
$color = "yellow" unless ($color eq "red");
$warning = "Caution";
}
if (defined $warning) {
$message .= "$warning: $device is at $usage% usage.\n";
}
}
unless (defined $message) {
$message .= "All filesystems ok.\n";
}
foreach (@df) {
$message .= $_ ;
}
}
BlueLines
Disclaimer:
This post may contain inaccurate information, be habit forming, cause atomic warfare between peaceful countries, speed up male pattern baldness, interfere with your cable reception, exile you from certain third world countries, ruin your marriage, and generally spoil your day. No batteries included, no strings attached, your mileage may vary.