#!/usr/local/bin/perl -w use strict; use Sys::Hostname; my ($fs, $kbytes, $used, $avail, $cap, $mount); my $line; my $host = hostname(); my $date = `date +%Y%m%d%H`; my $outfile = "/export/home/steve/disk_log.$host.$date"; my $sendmail ='/usr/lib/sendmail -t '; my $mailhdr = "To: steve\@foo.com\n". "Subject: Disk usage alarm - $host - $date\n======================================================\n\n"; open (OUTFILE, ">$outfile") || die "Can't open $outfile: $!\n"; print OUTFILE $mailhdr; close (OUTFILE); open (OUTFILE, ">>$outfile") || die "Can't open $outfile: $!\n"; my $cmd = `df -k /usr >> $outfile`; close (OUTFILE); open (OUTFILE, "$outfile") || die "Can't open $outfile: $!\n"; while ($line = ) { chomp $line; next unless ($line =~ /^\//); ($fs, $kbytes, $used, $avail, $cap, $mount) = split(' ', $line); $cap =~ s/\%//; } close (OUTFILE); if ($cap >= 50) { system( "$sendmail < $outfile") == 0 or die "Can't Mail: $!\n"; } else { exit; }