#!/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);
In reply to disk monitor by fuzzysteve
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |