#!/usr/bin/perl
# Available under BSD License. See url for more info:
# http://www.cyberciti.biz/tips/howto-write-perl-script-to-monitor-disk-space.html
use strict;
use warnings;
use Filesys::DiskSpace;
# file system to monitor
my $dir = ¡°/home¡±;
# warning level
my $warning_level=10;
# email setup
my $to=¡®admin@yourdomain.com¡¯;
my $from=¡®webmaster@YOURDOMAIN.COM¡¯;
my $subject=¡®Low Disk Space¡¯;
# get df
my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $dir;
# calculate
my $df_free = (($avail) / ($avail+$used)) * 100.0;
# compare
if ($df_free < $warning_level) {
my $out = sprintf(¡°WARNING Low Disk Space on $dir : %0.2f%% ()\n¡±,$df_free);
# send email using UNIX/Linux sendmail
open(MAIL, ¡°|/usr/sbin/sendmail -t¡±);
## Mail Header
print MAIL ¡°To: $to\\n¡±;
print MAIL ¡°From: $from\\n¡±;
print MAIL ¡°Subject: $subject\\n¡±;
## Mail Body
print MAIL $out;
close(MAIL);
|
|